我不一定需要在服务器上运行它,但是,我想使用~/js/somefile.js
语法。
以前,我刚用绝对路径设置所有内容,并将我的项目设置为根级别。所以,我只是声明我所有的样式表,背景图片和javascript文件,如/css/somefile.css
但是,对于此项目,它不以root身份运行。
我无法将runat="server"
放在脚本标记上。
我可以把它放在链接标签上。
这一定是一个常见问题,只有一些简单的答案。
答案 0 :(得分:20)
我一直在做的是使用普通的script
代码并将src
放入<% %>
代码中,如图here所示:
<script language="javascript" src='<%=ResolveUrl("~/App_Themes/MainTheme/jquery.js")%>' type='text/javascript'></script>
答案 1 :(得分:11)
您可以使用ScriptManager:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/js/somefile.js" />
</Scripts>
</asp:ScriptManager>
答案 2 :(得分:3)
但是,您可以使用路径字符串中的函数,例如
<script type="text/javascript"
src="<%=Url.Content("~/Scripts/jquery-1.4.2.min.js") %>"></script>
然而,这是本地路径的ASP.NET MVC语法 - 我不记得我头顶的表单版本。
答案 3 :(得分:2)
使用 asp:ContentPlaceHolder 包装脚本标记,可以完全满足您的需求 并且您可以从后面的代码访问它,例如,通过将可见属性设置为 true 或 false 来执行或不执行set。 这是一个例子:
<asp:ContentPlaceHolder runat="server" ID="PrintPreviewBlock" Visible="false">
<script id="PrintPageCall" type="text/javascript" >
$(function() {
window.print();
});
</script>
</asp:ContentPlaceHolder>
并从后面的代码:
PrintPreviewBlock.Visible = true;
答案 4 :(得分:1)
<script language="javascript" src="<%=ResolveUrl("~/[PATH]")%>" type="text/javascript"></script>