jQuery库位置希望在服务器上以不同方式引用

我有一个使用jQuery的ASP.NET MVC应用程序。 要加载js库,我会像这样引用它们:

 

这在本地工作正常,但当我将其发布到服务器时,它找不到库。 要使它工作,我必须将其更改为:

  

进行此更改允许它在本地和服务器上工作,但它会向我发出警告,指出找不到该文件。 所以我有几个问题:

  1. 如果我没有引用正确的库位置,代码如何在本地工作?
  2. 我可以为脚本路径提供什么,它可以在任何地方工作而不会发出警告?

我知道#2的答案是将库存储在一些已知的绝对路径中,但我还没有准备好承诺。

试试这个:

  

这将使应用程序根目录的路径相对化,无论它位于顶层还是虚拟目录中。 我实际上开发了一个HtmlHelper扩展,可以清除它:

 <%= Html.Javascript( Url.Content( "~/Scripts/jquery-1.3.2.min.js" )) %> 

添加以下内容以获取intellisense。 这需要相对路径才能工作,但在运行时被排除,因为条件(总是)失败。

 <% if (false) { %>  <% } %> 

正如安德鲁所说,你的目录结构完全不同。 您是否考虑过使用谷歌的加载库从壁橱位置向用户加载Jquery?

您是否尝试过从根url引用该文件? 即,而不是“../../”,它必须爬上一个directoy,使用“/Content/Scripts/jquery-1.3.2.min.js”。 这将是您的目录结构的不可知。

你还应该考虑使用谷歌加载jquery:

http://code.google.com/apis/ajaxlibs/

你会得到更好的加载时间。

麦克风

您的代码在本地工作的原因是因为您的本地目录结构与生产目录结构不同。

话虽这么说,我相信任何外部资源(javascript,图像和样式表)的绝对路径是最好的。