我在mvc app中设置jquery的路径时遇到问题。在我的母版页中,我声明了脚本,jquery在我的应用程序的根目录下工作。当我导航到我的应用程序中的内容视图页面时,jquery无法正确加载。我是否还需要在内容页面中设置路径或以不同方式声明路径?
<script src="Views/Scripts/jquery-1.2.6.min.js" type="text/javascript"></script>
答案 0 :(得分:11)
虽然使用绝对路径适用于某些安装,但在子目录中安装时会遇到问题。更安全的解决方案是使用Url.Content,它将始终正确地解析路径:
<script src="<%= Url.Content("~/Content/jquery-1.2.6.min.js") %>" type="text/javascript"></script>
答案 1 :(得分:2)
母版页上的src是相对的,不适用于子页面。如果将路径声明为绝对路径(例如“/Views/Scripts/jquery-1.2.6.min.js”),它应该可以工作;
答案 2 :(得分:1)
我建议使用辅助方法
public static class Helper
{
private static string ScriptsRoot = "~/views/scripts/";
public static string ScriptUrl (string scriptFile)
{
return VirtualPathUtility.ToAbsolute (ScriptsRoot + scriptFile);
}
}
然后像这样引用你的脚本:
<script type="text/javascript" src="<%= Helper.ScriptUrl("jquery-1.2.6.min.js") %>"></script>
答案 3 :(得分:1)
当您在母版页上时,可以使用
<script src="<%=ResolveUrl(~/Views/Scripts/jquery-1.2.6.min.js) %>" type="text/javascript"></script>
ResolveUrl是从Control继承的方法。 因此,从Control派生的MasterPage可以使用它。