Мои пути 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 этого представления бывает.
ДОПОЛНЕНИЕ:
Кажется, что для представления индекса любой путь будет работать, как ни странно:
<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:
Оказалось, что это проблема только с файлом javgcript jqgrid (не файлом jquery), очевидно, внутри этого файла он ссылается на другие файлы javascript и запутывается:
<script type="text/javascript" src="<%= Url.Content ("~/js/jquery.jqGrid.js") %>"></script>