что является лучшими практиками вокруг ссылок и URL в asp.net-mvc

смотря на различные сайты, я вижу конфликтующие конвенции.

если Вы хотите иметь ссылки на изображения, другие страницы, 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, и мне сказали удостовериться, что мои ссылки были сделаны корректным способом, или сайт не работают.

Кто-то может разъяснить, каков "корректный" путь?

1
задан leora 26 May 2010 в 11:20
поделиться

2 ответа

Используйте первый вариант. Так вы сможете переместить ваше приложение в любой подкаталог или на верхний уровень вашего домена.

Второй вариант подходит, если вы точно знаете, что приложение НИКОГДА не будет запускаться из подкаталога (т.е. оно всегда будет находиться в корне сервера).

Третий и четвертый варианты плохи, потому что они ссылаются на вашу структуру URL, которая бессмысленна в среде MVC: добавьте новый бит к пути (например, еще один аргумент) или рефакторите пути, и ничего не получится.

2
ответ дан 3 September 2019 в 00:17
поделиться

Лучший способ - использовать Url.Content и убедиться, что в нем есть ~.

Url.Content заменит ~ на правильный путь (корень вашего сайта).

Используйте только относительные пути в вашем css-файле.

Если ваш css расположен в

/css/style.css

а фоновое изображение в /images/background.png

то в style.css используйте:

#divTest
{
   background-image = url("../images/background.png")
}

Поскольку ваш сайт перемещается как единое целое, это будет работать.

0
ответ дан 3 September 2019 в 00:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: