Должен ли я использовать относительный путь для страниц внутри сайта?или это не имеет значения?

StackOverflow https://stackoverflow.com/questions/1016917

Вопрос

Мне просто было интересно, каков наилучший способ определить URL-адреса, ссылающиеся на страницы внутри доменного имени.Например, для домена www.example.com ..У меня могут быть ссылки типа

<a href="http://www.domain.com/test.html">test</a>

или

<a href="test.html">test</a>

Одна из проблем, с которой я столкнулся, заключалась в том, что при использовании шаблонов ..если я использую html-шаблон с относительными ссылками, то я не могу использовать тот же шаблон для каталога www.example.com/directory2 поскольку общие ссылки не будут работать для этой страницы..ни файлы css, ни javascripts.

Мне пришлось либо дублировать шаблон, либо полностью задавать пути.Я выбрал абсолютные пути.итак, пути к шаблону начинаются с http://www.mydomain.com/ ..Вызывает ли это какие-либо проблемы с производительностью, такие как множественные http-запросы, разрешение домена или любые другие?каково ваше предложение / комментарий по этому поводу?

Спасибо.

Это было полезно?

Решение

Хотя использование абсолютного пути не добавляет никаких дополнительных накладных расходов, общепринятой практикой для локальных ссылок является использование относительных ссылок.Относительные ссылки могут обрабатываться иначе, чем абсолютные ссылки, такими инструментами, как wget или Down-Them-All (инструменты загрузки веб-сайта).

Однако, если ваше шаблонное решение лучше всего работает с абсолютными ссылками, то нет ничего необычного в том, чтобы придерживаться их.Предварительно, абсолютные ссылки могут принести вам пользу, если содержимое вашего сайта будет очищено путем возврата к вашей исходной странице (источнику: http://www.navegabem.com/linking-strategy.html).

Другие советы

Обязательно используйте относительные пути.

Это даст вам не меньшую функциональность и избавит вас от проблем при изменении вашего доменного имени, а также позволит вам тест на другом сервере, а не в реальном времени....

вы можете искоренить все свои пути

eg <a href="/test.html">test</a>

это будет то же самое, что и установка домена.

[РЕДАКТИРОВАТЬ] вы можете использовать mod rewrite, чтобы затем переместить сайт, если это необходимо, в другие папки - см. http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritebase

Джош

Я думаю, вам следует использовать относительный путь.Поскольку, если бы ваш домен исчез / изменился, сайт продолжал бы работать должным образом, и более того, путь в html был бы намного короче.

И если вы хотите учесть случай изменения файловой структуры.Предполагая, что вы используете html для разработки веб-сайта.Я думаю, вы могли бы использовать shtml / server side include для разделения общих элементов, таких как:Меню

Таким образом, при изменении структур вам просто нужно изменить menu.shtml

Надеюсь, это поможет

То, что предложил Джош, нормально, но это приведет к сбою, если ваш сайт будет размещен под виртуальным каталогом.Я рекомендую всегда использовать относительные пути.

Всегда указывайте относительные пути для ссылки на ресурсы (страницы, css-файлы, js-файлы), которые находятся на вашем сайте.

Причины:

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

Однако, если ваш веб-сайт действительно настолько велик, вам потребуется база данных ссылок и идентификаторов ссылок, чтобы не размещать ссылки не по назначению при перемещении ресурсов.Это то, что Microsoft делает в microsoft.com.

джрх

Я с Джошем....укажите пути относительно корня приложения:/myfolder/myfile.html

В моем случае это имеет дополнительное преимущество работы на моем компьютере разработки, где каждый сайт является приложением (IIS) с моего сайта по умолчанию, а также работы на самом живом сайте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top