我在IIS(8)的默认网站中部署了多个ASP.NET应用程序。他们的虚拟目录设置如下:App1,App2,所以我将它们作为localhost / App1 / ...,localhost / App2 / ...到达,它们运行良好。
我想在我的某个应用中的标头标记的主页文件中加载如下所示的javascript文件:
<script src="/Script/myfile.js" type="text/javascript"></script>
当我打开页面时,我在控制台中收到错误,因为找不到我的文件,因为它在localhost/Script/
而不是localhost/App1/Script/
有没有办法将根目录设置为应用程序的根目录,其中包含应用程序的虚拟路径?
我不想将/App1
字符串硬化到js文件路径的开头,因为应用程序部署了更多次,在不同的网站下有不同的应用程序名称,而且我有很多js文件太
通过下面的例子,我也没有成功:
<script type="text/javascript" src="<%# Page.ResolveClientUrl("~/Script/myfile.js") %>"></script>
但是如果我改变了<%# %> tag to <%= %>
,那么它在某些页面上有效,但是其他人犯了错误:
&#34;只允许内容控件直接出现在包含内容控件的内容页面中。对于此错误,我找到了将<%= %>
更改为<%# %>
的解决方案,这对我不起作用,它使我的js文件在任何页面上都无法再次运行。
有什么想法吗?
答案 0 :(得分:0)
我发现使用下面代码的解决方案有效(它在我的主页的标题中):
<script type="text/javascript" src="<%# Page.ResolveClientUrl("~/Script/myfile.js") %>"></script>
但是我需要将下面的代码放入masterpage的pageload方法中:
if(!IsPostBack)
this.Page.DataBind();
如果没有这个,文件将不会被加载,这就是为什么它第一次对我不起作用。
希望它有所帮助。