js文件路径是正确的但无法加载

时间:2012-05-10 08:05:33

标签: javascript asp.net asp.net-dynamic-data

我正在使用ASP.Net动态数据。我的site.master页面中有以下行。

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

路径正确且文件存在。但是当我加载页面时,我可以在firebug的Net面板中看到它无法找到该文件。错误消息是“404 Not Found”

4 个答案:

答案 0 :(得分:2)

方法 - 1

您应该像下面提到的那样修改代码......

  1. ~/Scripts/jquery-ui-1.8.20.custom.min.js
  2. "<%#ResolveUrl("~/Scripts/jquery-ui-1.8.20.custom.min.js")%>"
  3. 在第一种情况下用〜

    替换..

    方法 - 2

    或者,右键单击页面并选择View Source。单击脚本文件的链接并检查它是否导航到您的实际脚本文件?否则,如上所述进行必要的更改。

答案 1 :(得分:1)

我不相信你的网址:)

使用:

<script src='ResolveUrl("~/Scripts/jquery-ui-1.8.20.custom.min.js")' type="text/javascript"></script>

另外,请验证 - 在加载此行之前加载jQuery.js。

答案 2 :(得分:1)

在网址开头使用../时,浏览器的当前网址作为基础。因此,当您从站点根目录下降到一个目录级别时,该URL将工作,如下所示:

http://myserver:myport/myvirtualdir/somedir/somepage.aspx

或者这个:

http://myserver:myport/myvirtualdir/somedir/ (使用默认页面或视图)

然后,浏览器将加载以下脚本:

http://myserver:myport/myvirtualdir/Scripts/jquery-ui-1.8.20.custom.min.js

但是如果您处于任何其他目录深度,浏览器将使用错误的URL作为脚本。就像你在根默认页面一样:

http://myserver:myport/myvirtualdir/Default.aspx

然后浏览器将尝试从错误的目录加载脚本:

http://myserver:myport/Scripts/jquery-ui-1.8.20.custom.min.js

这就是为什么你需要解析服务器端的网址,就像几个人已经在这里说过的那样。这将为浏览器提供脚本的工作URL。文件路径和网址之间存在差异。

您获得 404 的事实意味着浏览器尝试访问的网址根本不正确,从浏览器的角度来看,这实际上是唯一的观点这是有效的,即使你,开发人员确信你做得对...

<script src="<%#ResolveUrl("~/Scripts/jquery-ui-1.8.20.custom.min.js")%>"></script>

答案 3 :(得分:-1)

正如Royi所说,在你拥有jquery.js

之前确保你拥有jquery-ui.js
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui-1.8.20.custom.min.js" type="text/javascript"></script>

这是一个提示。打开site.Master设计器然后将.js文件从解决方案资源管理器拖放到设计器中。它会为你创造道路。