На этой странице работают мои 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 установить CSS/Javascript пути в Site.Master, чтобы они работали для каждого представления независимо от того, насколько глубоко этот 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>
Но для любых других страниц (страниц с более глубоким URL) ни одна из них не работает.
Что здесь происходит? Как мы можем установить путь Javascript один раз в Site.Master и работать на всех страницах?
ADDENUM II:
Оказалось, что это только проблема с jqgrid javascript файлом (а не файлом jquery), видимо внутри этого файла он ссылается на другие файлы javascript и путается:
<script type="text/javascript" src="<%= Url.Content ("~/js/jquery.jqGrid.js") %>"></script>