Этот вопрос основан на аналогичном вопросе «Относительные пути ASP.NET MVC», расположенном здесь .
Я понимаю, что возникают проблемы, касающиеся абсолютных и относительных путей при разработке приложения ASP.NET ... особенно приложения ASP.NET MVC. На протяжении всего жизненного цикла приложения для разрешения путей на страницах ASPX я использовал что-то похожее на следующее:
<script type="text/javascript" src="<%=Url.Content("~/Scripts/jquery-1.2.6.js")%>"></script>
Я не могу оставить пути относительными, потому что они перемещаются с уровня разработки на уровень подготовки на уровень производства и могут находиться в несколько иной структуре папок в IIS.
Мой вопрос, однако, что я могу сделать с относительными путями, расположенными в файлах Javascript? Как они могут быть решены? До этого момента я встраивал Javascript для каждой страницы в саму страницу, поэтому я могу разрешить URL, используя подход, аналогичный описанному выше. В результате Javascript выглядит примерно так:
$(function() {
$.getJSON('<%= Url.Content("~/home/test/1") %>', null, function(data) {
// Do stuff in here
});
});
Это работает нормально, конечно, пока я не переместлю все со страницы ASP.NET в центрально расположенный файл Javascript. В соответствии с вышеупомянутым вопросом :
Или вы можете использовать document.location.host
построить полное имя пути
внутри JavaScript:
document.location.host +
«/Content/Images/MyImage.jpg"
Другой способ - использовать ASP.NET.
построить эту часть сценария
динамически, чтобы полностью
вводится полное имя пути.
можно сделать это с помощью
ScriptManager.RegisterStartupScript или
ScriptManager.RegisterScriptBlock
Приложение - довольно тяжелый пользователь Javascript, поэтому я не уверен, сработает ли второй вариант. Есть ли более элегантный способ решения этой проблемы, кроме первого варианта? Что вы, ребята, сделали, чтобы решить эту проблему? Любая помощь будет принята с благодарностью. Спасибо.