【问题标题】:Problem setting path to jquery in mvc app在 mvc 应用程序中设置 jquery 路径的问题
【发布时间】:2008-11-24 04:50:06
【问题描述】:

我无法在 mvc 应用程序中设置 jquery 的路径。在我的母版页中,我声明了脚本,并且 jquery 在我的应用程序的根目录下工作。当我导航到我的应用程序中的内容视图页面时,jquery 没有正确加载。我是否还需要在内容页面中设置路径或以不同方式声明路径?

<script src="Views/Scripts/jquery-1.2.6.min.js" type="text/javascript"></script>

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

    虽然在某些安装中可以使用绝对路径,但在子目录中安装时会遇到问题。更安全的解决方案是使用 Url.Content ,它总是能正确解析路径:

    <script src="<%= Url.Content("~/Content/jquery-1.2.6.min.js") %>" type="text/javascript"></script>
    

    【讨论】:

      【解决方案2】:

      母版页上的 src 是相对的,对子页不起作用。如果您将路径声明为绝对路径(例如“/Views/Scripts/jquery-1.2.6.min.js”),它应该可以工作;

      【讨论】:

      • 这假定您的应用程序将始终安装在站点根目录中。如果安装在子目录下,则无法使用。
      • 是的,当然。我只是想让他朝正确的方向轻推。
      【解决方案3】:

      我建议使用辅助方法

      public static class Helper
      {
          private static string ScriptsRoot = "~/views/scripts/";
      
          public static string ScriptUrl (string scriptFile)
          {
              return VirtualPathUtility.ToAbsolute (ScriptsRoot + scriptFile);
          }
      }
      

      然后像这样引用你的脚本:

      <script type="text/javascript" src="<%= Helper.ScriptUrl("jquery-1.2.6.min.js") %>"></script>
      

      【讨论】:

        【解决方案4】:

        当您在母版页上时,您可以使用

        <script src="<%=ResolveUrl(~/Views/Scripts/jquery-1.2.6.min.js) %>" type="text/javascript"></script>
        

        ResolveUrl 是从 Control 继承的方法。 因此,从 Control 派生的 MasterPage 可以使用它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-10
          • 1970-01-01
          • 2011-01-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-09
          相关资源
          最近更新 更多