Javascript 为什么~/在脚本引用中不起作用?

Javascript 为什么~/在脚本引用中不起作用?,javascript,jquery,asp.net,webforms,Javascript,Jquery,Asp.net,Webforms,我在ASP.NET项目中使用jQuery。我刚刚意识到,它只在导航深度不够深的情况下起作用。比如说 http://localhost/myapp/index/有效 http://localhost/myapp/index/sites/sub/不起作用 我遇到的错误是由jQuery引起的。萤火虫告诉我 未定义“$” 经过一些研究,我改变了我的元定义如下: 不过,它还是不起作用。查看服务器响应后,CSS链接的href被正确替换: 但是,对于我的脚本资源,相对路径尚未被替换: 我期望类

我在ASP.NET项目中使用jQuery。我刚刚意识到,它只在导航深度不够深的情况下起作用。比如说

  • http://localhost/myapp/index/
    有效
  • http://localhost/myapp/index/sites/sub/
    不起作用
我遇到的错误是由jQuery引起的。萤火虫告诉我

未定义“
$

经过一些研究,我改变了我的元定义如下:


不过,它还是不起作用。查看服务器响应后,CSS链接的
href
被正确替换:


但是,对于我的脚本资源,相对路径尚未被替换:


我期望类似于
。/../Scripts/jquery-1.7.2.min.js

这是被通缉的行为吗?如何正确设置脚本资源的应用程序根引用?当我在IIS中作为web应用程序托管我的网站时,编写
/Scripts/jquery-1.7.2.min.js
是否有效?

尝试链接到您的资源:

<link rel="Stylesheet" type="text/css" href="<%=Page.ResolveUrl("~/Css/style.css")%>" />
<script src="<%=Page.ResolveUrl("~/Scripts/jquery-1.7.2.min.js")%>" type="text/javascript"></script>
<script src="<%=Page.ResolveUrl("~/Scripts/jquery.uniform.min.js")%>" type="text/javascript"></script>


这将解析为您网站的父目录,无论它是作为应用程序的根目录托管,还是虚拟目录托管。

这是WebForms还是MVC?如果WebForms不是您在使用
~
的所有元素上都缺少
runat=server
,对不起,我忘了提及。我在网络表单上@马丁史密斯:好吧,你不能把
runat=“server”
添加到
脚本
标记中,不是吗?!我想这可能会有所帮助谢谢你的努力!然而,我仍然希望得到一个答案,它描述了为什么
~/
不适用于
脚本
资源,而适用于
链接
s。我认为这与.NET呈现标记的方式有关。这似乎是一个已知的“问题”,但我找不到任何原因来解释它。