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