我有一个IIS网站。这个网站包含其他网站,所以结构是这样的。
\
MainWebSite\
Scripts\
CSS\
App1\
Scripts\
CSS\
App2\
Scripts\
CSS\
所有站点都是ASP.NET MVC Web应用程序。
在App1的MasterPage
中,我引用了这样的脚本文件:
<script type="text/javascript" src="../../Scripts/jquery-ui-1.8.custom.min.js">
</script>
问题是它现在尝试在http:\ server \ MainWebSite \ Scripts ....找到该文件。
我该如何解决这个问题?我应该将所有脚本和CSS文件放入根目录,这是首选解决方案吗?
答案 0 :(得分:4)
在ASP.NET中有一个很棒的函数,它是Page Object的一部分:
ResolveUrl(String)
通过传入相对字符串来使用它,但最好的部分是你可以使用〜来表示你网站的根目录:
<script type="text/javascript" src='<%=ResolveURL("~/PATH_FROM_ROOT/Scripts/jquery-ui-1.8.custom.min.js")%>'></script>
[注意单引号。]
答案 1 :(得分:1)
试试这个
<script type="text/javascript" src="~/../Scripts/jquery-ui-1.8.custom.min.js" runat="server"></script>
在上面的标记中,我假设你的脚本文件在MainWebSite \ Scripts \
中“〜”从您的应用程序根目录中提供您的相关引用。好处是,如果您将母版页文件从MainWebSite\App1\
转移到MainWebSite\App1\MasterPages\
,则无需更改母版页中所有相对引用的网址。
答案 2 :(得分:0)
最佳解决方案是使用CSS和JavaScript的绝对URL。使用附加的全局变量,您也可以在开发系统上使用它。