首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.Net母版页和文件路径问题

ASP.Net母版页和文件路径问题
EN

Stack Overflow用户
提问于 2009-03-30 15:18:17
回答 10查看 98.7K关注 0票数 79

我正尝试在我的母版页中添加一个对jQuery的脚本引用,这样它就可以在任何页面上运行。它目前看起来是这样的

代码语言:javascript
复制
<script type="text/javascript" src="jquery.js"></script>

问题是,路径总是相对于正在执行的aspx页面,所以只有当"jquery.js“文件位于相同的文件夹中时,这才能起作用。要使其正常工作,我必须将行更改为:

代码语言:javascript
复制
<script type="text/javascript" src="../../jquery.js"></script>

这显然不太理想,因为它只适用于离根文件夹两级深的页面。如果我尝试执行以下操作,IIS将引发有关意外字符的错误。

代码语言:javascript
复制
<script runat="server" type="text/javascript" src="~/jquery.js"></script>

有什么想法吗?

编辑:我也忘了提一下,脚本必须在标签中

当前的答案是"ASP.NET Ajax客户端框架加载失败“。将其添加到我的母版页时出错。它是从javascript抛出的,而不是.Net编译器抛出的。如果我将表单移动到head部分,我会得到一个编译错误,说明ScriptManager需要放在一个ScriptManager标记内。

第三个答案抛出一个“path中的非法字符”。来自编译器的异常

IISEDIT2:当我将该行添加到我的head标记时,我从得到这个错误。

无法修改Controls集合,因为该控件包含代码块(即<% ... %>)

已解决:我从下面的答案中获得了编辑后的响应,并将其放入一个asp:ContentPlaceHolder元素中

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2009-03-30 15:22:50

您可以使用ScriptManager

代码语言:javascript
复制
<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Scripts>
        <asp:ScriptReference Path="~/jquery.js" />
    </Scripts>
</asp:ScriptManager>

编辑:如果你在你的<head>部分绝对需要它,你可以这样做:

代码语言:javascript
复制
<head>
    <script type="text/javascript" 
        src="<%= Page.ResolveClientUrl("~/jquery.js") %>"></script>
</head>

EDIT 2:根据注释,如果您正在观察

无法修改Controls集合,因为该控件包含代码块(即<% ... %>)

您可能需要更改以上内容才能使用数据绑定语法:

代码语言:javascript
复制
<head>
    <script type="text/javascript" 
        src="<%# Page.ResolveClientUrl("~/jquery.js") %>"></script>
</head>
票数 110
EN

Stack Overflow用户

发布于 2012-11-16 18:14:00

尝试在标题部分下的母版页中使用<%#代替<%=

代码语言:javascript
复制
<script type="text/javascript" 
        src="<%# ResolveUrl("~/YourScriptFolder/YourJQueryOrJavascript.js") %>">
</script>

然后在Page_Load事件下的母版页的代码背后

代码语言:javascript
复制
Page.Header.DataBind();

现在你可以使用jQuery和JavaScript以及CSS了,你只需要改变你在ResolveUrl中的路径,你想要处理CSS,JavaScript,jQuery的文件。

票数 26
EN

Stack Overflow用户

发布于 2009-03-30 15:26:42

如果你不打算访问我们的asp:ScriptManager或绝对路径,那么你可以这样做:

代码语言:javascript
复制
<script runat="server" type="text/javascript" 
  src='<%= Page.ResolveUrl("~/jquery.js") %>'></script>
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/697660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档