提问人:KP. 提问时间:10/9/2008 最后编辑:Gulzar NazimKP. 更新时间:7/5/2012 访问量:6874
在 VS 2008 嵌套母版页中包含对 JavaScript 的相对引用的首选方法
Preferred way to include relative reference to JavaScript in VS 2008 nested Masterpage
问:
我们的基本母版页如下所示
<head runat="server">
<title></title>
<script type="text/javascript" src="<%= Page.ResolveClientURL("~/javascript/actions.js")%>"></script>
<script type="text/javascript" src="<%= Page.ResolveClientURL("~/javascript/jquery/jquery-1.2.6.min.js")%>"></script>
<asp:contentplaceholder id="cph_htmlhead" runat="server">
</asp:contentplaceholder>
</head>
如果此母版页是 ASPX 页的母版页,则一切正常。
如果此母版页是子母版页的母版页,然后新的 ASPX 页使用子母版页作为母版页,我们将看到:
“”应用程序中的服务器错误。
无法修改 Controls 集合,因为该控件包含代码块(即 <% ... %>)。
在保留波浪号(~)样式相对路径的基本母版页中包含全局资源(Javascript/CSS)的首选方法是什么?
答:
4赞
Gulzar Nazim
10/9/2008
#1
根据 ScottGu 的说法,
一个可以利用的技巧是 head runat=“server” 控件提供的相对路径修复支持。您可以在母版页中使用它来轻松引用 .在整个项目中重复使用的 CSS 样式表(无论项目是根引用还是子应用程序):
然后,头部控制的路径修复功能将采用相对 .CSS 样式表路径,并在运行时正确输出样式表的绝对路径,无论它是根引用的网站还是子应用程序的一部分。
5赞
Shawn Miller
10/9/2008
#2
你试过吗:
<script type="text/javascript" src='<%= Page.ResolveClientUrl("~/javascript/actions.js") %>'></script>
评论
0赞
KP.
10/9/2008
我们目前正在使用重磅 (#) include 来调用 databind() 在基本主代码后面的 head 元素上。但我正在寻找一些具体/最佳实践。
11赞
Kon
10/9/2008
#3
使用 ScriptManager 服务器控件:
<asp:ScriptManager ID="myScriptManager" runat="server">
<Scripts>
<asp:ScriptReference Path = "~/javascript/actions.js" />
<asp:ScriptReference Path = "~/javascript/jquery/jquery-1.2.6.min.js" />
</Scripts>
</asp:ScriptManager>
上一个:解析文件中的嵌套标记
下一个:筑巢还是不筑巢?
评论