В моих приложениях мне часто приходится использовать относительные пути. Например, когда я ссылаюсь на JQuery, я обычно делаю это так:
<script type="text/javascript" src="../Scripts/jquery-1.2.6.js"></script>
Теперь, когда я делаю переход к MVC, мне нужно учитывать разные пути, которые может иметь страница, относительно корня. Это, конечно, проблема с перезаписи URL в прошлом, но мне удалось обойти это, используя согласованные пути.
Я знаю, что стандартное решение - использовать абсолютные пути, такие как:
<script type="text/javascript" src="/Scripts/jquery-1.2.6.js"></script>
но это не сработает для меня, так как во время цикла разработки мне нужно установить на тестовую машину, на которой приложение будет работать в виртуальном каталоге. Корневые относительные пути не работают, когда корень изменяется. Кроме того, по причинам технического обслуживания я не могу просто изменить все пути на время развертывания теста - это было бы кошмаром само по себе.
Итак, какое лучшее решение?
Edit:
Поскольку этот вопрос все еще принимает мнения и ответы, я подумал, что было бы разумно обновить его, чтобы отметить, что с Razor V2 поддерживается поддержка корневых URL-адресов, поэтому вы можете использовать
<img src="~/Content/MyImage.jpg">
без синтаксиса на стороне сервера, а механизм просмотра автоматически заменяет ~/любым текущим корнем сайта.