Должны ли ссылки на изображения/css/javascript из HTML использовать относительные или абсолютные пути?

Каковы плюсы и минусы ссылки на веб-ресурсы с использованием относительных или абсолютных путей? Например:

<link rel="StyleSheet" href="/css/mystylesheet.css" type="text/css" />
<img src="/images/myimage.gif" alt="My Image" />

vs.

<link rel="StyleSheet" href="../css/mystylesheet.css" type="text/css" />
<img src="../images/myimage.gif" alt="My Image" />

person Peter Howe    schedule 06.04.2010    source источник


Ответы (3)


Ответ "это зависит". Но в большинстве случаев абсолютный путь, вероятно, лучше.

Я использую абсолютные пути там, где я использую шаблоны, или если я использую mod_rewrite Apache.

Вы можете использовать относительный путь, если у вас есть страница с сопроводительной таблицей стилей, которая может быть размещена на разных уровнях при загрузке. т.е. вы написали страницу, которая будет использоваться на многих веб-сайтах, и некоторые люди могут загрузить ее в корневой каталог, а некоторые — нет — используя относительный путь, пока они загружают файл html и файл css вместе, это будет работать, тогда как абсолютный путь в этом сценарии не будет.

person Fenton    schedule 06.04.2010
comment
Я не думаю, что вы правильно используете относительные и абсолютные пути. Первый пример абсолютный, второй относительный. - person sberder; 13.03.2013

Это зависит от вашей серверной организации файлов. Если вы используете переписывание URL или передний контроллер, чем относительные пути, вероятно, не будут работать.

С другой стороны, если вы используете абсолютные пути (и даже если вы просто используете «обычные» HTML-страницы), вы можете переупорядочивать страницы, не заботясь об их расположении в вашей структуре.

person Felix Kling    schedule 06.04.2010

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

Например, представьте, что если вы хотите изменить структуру файлов вашего сервера, вы даже переместите свое приложение в другие среды. Для этого вам потребуется дополнительная работа, поскольку требуется изменение всех ваших абсолютных путей. Для того же сценария с использованием относительных путей дополнительная работа больше не требуется.

Мой совет — используйте относительные пути в качестве стандарта в процессе разработки и только в случае крайней необходимости выбирайте использование абсолютных путей.

person Ricardo Rocha    schedule 27.09.2019