我有一个使用 jQuery 的 ASP.NET MVC 应用程序。为了加载 js 库,我像这样引用它们:
<script type="text/javascript" src="../../Scripts/jquery-1.3.2.min.js"></script>
这在本地工作正常,但是当我将其发布到服务器时,它找不到该库。为了让它工作,我必须将其更改为:
<script type="text/javascript" src="../Scripts/jquery-1.3.2.min.js"></script>
进行此更改允许它在本地和服务器上工作,但它会警告我找不到该文件。所以我有几个问题:
- 如果我没有引用正确的库位置,代码如何在本地运行?
- 我可以为脚本路径添加什么内容,以便在任何地方都可以工作并且不会发出警告?
我知道问题 2 的答案是将库存储在某个已知的绝对路径中,但我还没有准备好 promise 这一点。
最佳答案
试试这个:
<script type="text/javascript" src='<%= Url.Content("~/Scripts/jquery-1.3.2.min.js") %>'></script>
这将使应用程序根目录的路径相对化,无论它是在顶层还是在虚拟目录中。我实际上开发了一个 HtmlHelper 扩展,可以将其清理为:
<%= Html.Javascript( Url.Content( "~/Scripts/jquery-1.3.2.min.js" )) %>
添加以下内容以获得智能感知。这需要相对路径才能工作,但在运行时被排除,因为条件(总是)失败。
<% if (false) { %>
<script type="text/javascript" src="../../Scripts/jquery-1.3.2.vsdoc.js"></script>
<% } %>
关于jQuery 库位置希望在服务器上以不同方式引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/730336/