相对引用CSS和JavaScript文件的问题

时间:2010-06-10 11:16:50

标签: asp.net html css

我有一个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文件放入根目录,这是首选解决方案吗?

3 个答案:

答案 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。使用附加的全局变量,您也可以在开发系统上使用它。