我的JavaScript路径在此页面上有效:
http://localhost:53049/
但不在此页面上:
http://localhost:53049/Home/Messages
原因是相对路径不同,前者需要(“js / ...”),后者需要(“../../ js / ...”)。
我将JavaScript包含在Site.Master文件中:
<script type="text/javascript" src="js/jquery.jqGrid.js"></script>
<script type="text/javascript" src="~/js/jquery.jqGrid.js"></script>
<script type="text/javascript" src="<%= this.ResolveClientUrl("~/Scripts/jquery-1.2.6.js") %>"></script>
我如何解决这种相对路径的困惑问题,即ASP.NET MVC中在Site.Master中设置CSS / Javascript路径的最佳实践是什么,以便无论该 View 的URL发生多深,它们都适用于每个 View 。 。
添加:
似乎对于索引 View ,奇怪的是任何路径都可以工作:
<script type="text/javascript" src="/Scripts/jquery-1.2.6.js"></script>
<script type="text/javascript" src="../../Scripts/jquery-1.2.6.js"></script>
<script type="text/javascript" src="../../../Scripts/jquery-1.2.6.js"></script>
但是对于其他任何页面(URL较深的页面),这些都不起作用。
这里发生了什么?我们如何在Site.Master中设置一次Javascript路径,并且它们适用于所有页面?
ADDENUM II:
事实证明,这只是jqgrid javascript文件(不是jquery文件)的问题,显然在该文件中,它引用了其他javascript文件并感到困惑:
<script type="text/javascript" src="<%= Url.Content ("~/js/jquery.jqGrid.js") %>"></script>
最佳答案
您还可以使用Url.Content方法调用来确保正确设置了路径。
可以找到示例here。
关于asp.net-mvc - ASP.NET MVC中的CSS和Javascript相对路径困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/435769/