0

我在 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 <%= %>,那么它可以在某些页面上运行,但其他页面会抛出错误:“仅允许直接在包含内容控件的内容页面中使用内容控件”。对于此错误,我找到了将 更改为 的解决方案<%= %><%# %>这对我不起作用,它使我的 js 文件在任何页面上都无法再次工作。

有任何想法吗?

4

1 回答 1

0

我发现使用以下代码的解决方案有效(它在我的母版页的头标签中):

<script type="text/javascript" src="<%# Page.ResolveClientUrl("~/Script/myfile.js") %>"></script>

但是我需要把下面的代码放到masterpage的pageload方法中:

if(!IsPostBack)
        this.Page.DataBind();

没有这个,文件将不会被加载,这就是为什么它第一次对我不起作用。

希望它可以帮助某人。

于 2018-01-05T12:44:33.100 回答