В моих приложениях мне часто приходится использовать относительные пути. Например, когда я ссылаюсь на 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>
но это не будет работать для меня, так как во время цикла разработки мне приходится развертывать на тестовой машине, на которой приложение будет работать в виртуальном каталоге. Относительные пути root не работают, когда изменяется root. Кроме того, по причинам обслуживания я не могу просто изменить все пути на время развертывания теста - это само по себе было бы кошмаром.
Так какое же лучшее решение?
Edit:
Так как этот вопрос все еще получает представления и ответы, я подумал, что было бы разумно обновить его, чтобы отметить, что начиная с Razor V2, поддержка корневых ссылок встроена, поэтому вы можете использовать
<img src="~/Content/MyImage.jpg">
без какого-либо серверного синтаксиса, и механизм просмотра автоматически заменяет ~ / на любой текущий корень сайта.