3

我正在为我的 ASP.NET 项目使用 jQuery。我刚刚意识到,它只有在导航深度不那么深的情况下才有效。例如

  • http://localhost/myapp/index/作品
  • http://localhost/myapp/index/sites/sub/不工作

我遇到的错误是由 jQuery 引起的。萤火虫告诉我,

$没有定义。

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

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

尽管如此,它还是没有奏效。在我查看服务器响应后,hrefCSS 链接的 被正确替换:

<link rel="Stylesheet" type="text/css" href="../../Css/style.css" />

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

<script src="~/Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.uniform.min.js" type="text/javascript"></script>

我期待类似的东西../../Scripts/jquery-1.7.2.min.js

这是想要的行为吗?我应该如何正确设置脚本资源的应用程序根引用?/Scripts/jquery-1.7.2.min.js当我在 IIS 中将我的网站作为 Web 应用程序托管时,写作会起作用吗?

4

1 回答 1

1

尝试Page.ResolveUrl()链接到您的资源:

<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>

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

于 2013-05-28T13:26:22.150 回答