代码之家  ›  专栏  ›  技术社区  ›  Markus

相对地引用CSS和JavaScript文件时出现问题

  •  0
  • Markus  · 技术社区  · 15 年前

    我有一个IIS网站。此网站包含其他网站,因此结构如下。

    \ 
    MainWebSite\
            Scripts\
            CSS\
            App1\
               Scripts\
               CSS\
            App2\
               Scripts\
               CSS\
    

    所有网站都是ASP.NET MVC Web应用程序。

    MasterPage 在App1中,我引用如下脚本文件:

    <script type="text/javascript" src="../../Scripts/jquery-ui-1.8.custom.min.js">
    </script>
    

    问题是它现在试图在http:\server\mainwebsite\scripts….

    我怎么能解决这个问题?我应该把所有的脚本和CSS文件放到根目录中吗,这是首选的解决方案吗?

    3 回复  |  直到 15 年前
        1
  •  4
  •   Peter Mortensen icecrime    14 年前

    在ASP.NET中,有一个很大的函数是页面对象的一部分:

    ResolveUrl(String)
    

    这是通过传入一个相对字符串来使用的,但最好的部分是可以使用~来表示网站的根:

    <script type="text/javascript" src='<%=ResolveURL("~/PATH_FROM_ROOT/Scripts/jquery-ui-1.8.custom.min.js")%>'></script>
    

    [注意单引号。]

        2
  •  1
  •   IsmailS    15 年前

    试试这个

    <script type="text/javascript" src="~/../Scripts/jquery-ui-1.8.custom.min.js" runat="server"></script>
    

    在上面的标记中,我假设您的脚本文件在mainwebsite\scripts中\

    “~”从应用程序根目录中引入相关引用。好处是,如果您将母版页文件从 MainWebSite\App1\ MainWebSite\App1\MasterPages\ 您不必更改母版页中所有相对引用的URL。

        3
  •  0
  •   Peter Mortensen icecrime    14 年前

    最好的解决方案是使用CSS和JavaScript的绝对URL。使用一个附加的全局变量,您也可以在开发系统中使用它。