смотря на различные сайты, я вижу конфликтующие конвенции.
если Вы хотите иметь ссылки на изображения, другие страницы, js файлы, я видел:
URL.Content("~/scripts/myscript.js");
<a href="/scripts/msscripts.js">
<img src="../../images/test.jpg" />
<img src="../images/test.jpg" />
<img src="/images/test.jpg" />
<img src="~/images/test.jpg" />
они все, кажется, работают в asp.net mvc, но это походит, там все делают немного отличающиеся вещи.
Я перемещаюсь в новый веб-сервер, где они изменяются от перенаправления IIS до перезаписи isapi, и мне сказали удостовериться, что мои ссылки были сделаны корректным способом, или сайт не работают.
Кто-то может разъяснить, каков "корректный" путь?
Используйте первый вариант. Так вы сможете переместить ваше приложение в любой подкаталог или на верхний уровень вашего домена.
Второй вариант подходит, если вы точно знаете, что приложение НИКОГДА не будет запускаться из подкаталога (т.е. оно всегда будет находиться в корне сервера).
Третий и четвертый варианты плохи, потому что они ссылаются на вашу структуру URL, которая бессмысленна в среде MVC: добавьте новый бит к пути (например, еще один аргумент) или рефакторите пути, и ничего не получится.
Лучший способ - использовать Url.Content
и убедиться, что в нем есть ~.
Url.Content
заменит ~ на правильный путь (корень вашего сайта).
Используйте только относительные пути в вашем css-файле.
Если ваш css расположен в
/css/style.css
а фоновое изображение в /images/background.png
то в style.css используйте:
#divTest
{
background-image = url("../images/background.png")
}
Поскольку ваш сайт перемещается как единое целое, это будет работать.