我的javascript路径在此页面上运行: http:// localhost:53049 /
但不在此页面上: http:// localhost:53049/Home/Messages
原因是相对路径不同,前者需要("js/...")而后者需要("../../ js/...").
我在我的Site.Master文件中包含了我的javascript:
<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>
Run Code Online (Sandbox Code Playgroud)
我如何解决这个相对路径的疯狂,即ASP.NET MVC在Site.Master中设置CSS/Javascript路径的最佳实践方式是什么,这样无论视图的URL多么深,它们都适用于每个视图.
附录:
似乎对于Index视图,任何路径都可以工作,奇怪的是:
<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>
Run Code Online (Sandbox Code Playgroud)
但对于任何其他页面(具有更深URL的页面),这些都不起作用.
这里发生了什么?我们如何在Site.Master中设置一次Javascript路径,它们适用于所有页面?
ADDENUM II:
事实证明只有jqgrid javascript文件(而不是jquery文件)的问题,显然在该文件中它引用其他javascript文件并且混淆:
<script type="text/javascript" src="<%= Url.Content ("~/js/jquery.jqGrid.js") %>"></script>
Run Code Online (Sandbox Code Playgroud)
Rop*_*tah 13
关于CSS文档中使用的路径:
/Content/site.css
Body {background-image:url('background.jpg');}
Run Code Online (Sandbox Code Playgroud)
CSS文档中的相对路径与CSS文档相关,而不是与显示的文档相关.
这些信息让我有些头疼.
| 归档时间: |
|
| 查看次数: |
32749 次 |
| 最近记录: |