1

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

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

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

4

4 回答 4

2

Approach - 1

您应该按照以下方式修改代码...

  1. ~/Scripts/jquery-ui-1.8.20.custom.min.js
  2. "<%#ResolveUrl("~/Scripts/jquery-ui-1.8.20.custom.min.js")%>"

在第一种情况下,将 .. 替换为 ~

Approach - 2

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

于 2012-05-10T08:29:19.870 回答
1

我不相信你的网址 :)

利用 :

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

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

于 2012-05-10T08:07:10.143 回答
1

当您../在 url 的开头使用时,它是以浏览器的当前 url 作为基础。因此,只有当您位于站点根目录的下一级目录时,该 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,就像几个人已经说过的那样。这将为浏览器提供脚本的工作 url。文件路径和 url 之间存在差异。

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

<script src="<%#ResolveUrl("~/Scripts/jquery-ui-1.8.20.custom.min.js")%>"></script>
于 2012-05-10T08:35:31.613 回答
-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 文件从解决方案资源管理器拖放到设计器中。它将为您创建路径。

于 2012-05-10T08:24:32.627 回答