Относительные пути для включений в HTML? Возврат к старым временам?

[Этот вопрос в некоторой степени связан с этот вопрос, но ответы не ...]

Я всегда использовал относительные пути в HTML и языках сценариев (PHP / ASP / JSP) для обозначения ВСЕГО. Я думаю, что оправдание было связано с тем, «что, если веб-сайт будет размещен в каком-то странном подкаталоге». Но мой коллега начал вводить абсолютные пути на сайт PHP, над которым мы работаем. Сначала я был потрясен, но потом подумал: «Почему бы и нет? Мы разместим никогда в подкаталоге». В настоящее время размещение в корневом каталоге не является редкостью. Все еще необходимо "кодировать" (на самом деле, разметку) с относительными путями? Я думаю, что это уже устаревшая практика.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
2
0
637
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Определенно. Вы никогда не знаете, чем закончится ваш код и с какой целью.

Предположим, вы создаете новую версию сайта, но, чтобы облегчить переход пользователей, вы перемещаете старую версию в подкаталог «/ classic». То же самое часто происходит и в обратном направлении, когда сайты будут размещать бета-версию нового редизайна в каталоге «/ new».

Построить его правильно с первого раза не должно быть хлопот, и вы однажды поблагодарите себя за это.

Это хлопотно для включенного кода, потому что нам всегда приходится иметь дело с тем, ВХОДИМ ли мы в подкаталог или нет. Может быть, мне стоит спросить, как обойти этот PHP, в следующий раз ...

Dan Rosenstark 22.12.2008 18:20

Я имел в виду "небольшую неприятность". Спасибо за Ваш ответ!

Dan Rosenstark 22.12.2008 18:21

Что ж, вероятно, это не конец света, но он создает зависимость, которая вам не нужна.

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

Конечно, вы, вероятно, всегда можете обойти это каким-то другим способом, но проблема в том, что теперь вы должны это сделать.

Если вы используете динамически генерируемые страницы, динамически генерируйте свои URL-адреса. Например, с JSTL используйте <c: url>. Это не только позволит вам перемещать ваши страницы в будущем, но и гарантирует, что ваши URL-адреса будут правильно экранированы (скажите правду: как часто вы строите строки запроса с помощью & amp ;?, если вы хотите, чтобы валидатор W3C их принимал, тебе надо).

Для моего личного веб-сайта, который использует PHP для создания страниц, я создал несколько методов: insertPageRef (), insertCodeRef () и так далее, которые создают действительные HREF. В результате я без колебаний меняю структуру своего сайта по мере ее развития.

Замечания о ваших методах PHP ... Спасибо за ваш ответ.

Dan Rosenstark 22.12.2008 18:26

Я бы сказал, что перемещение в подкаталог довольно необычно. Гораздо более обычным является размещение на разных серверах: вы создаете свой сайт для тестирования на «dev.yourcompany.com», а затем запускаете его, перемещая его на «www.yourcompany.com». В этом случае вам необходимо использовать относительные ссылки по очевидным причинам.

Правильно, под абсолютным я не имею в виду ссылки, содержащие имя сервера. Это будет сложно проверить ...

Dan Rosenstark 23.12.2008 07:27
Ответ принят как подходящий

Обновлено: убил мой начальный абзац, поскольку он был основан на неправильной интерпретации упомянутой статьи.

Я всегда использую абсолютный путь по следующим причинам:

Включает: 1. Когда вы используете систему шаблонов, вы никогда не знаете, какую структуру каталогов будет иметь документ при вызове включения. 2. Если документы собираются перемещать, вы можете быть уверены, что это будут сами документы, а не их включения. Если это включает, то они перемещаются моим кем-то, кто знает, что происходит. Вдобавок к этому, если кто-то не знаком с абсолютным / относительным путем, он поймет абсолютный намного лучше, чем относительный.

css: (а также элементы выше) 1. При редактировании с помощью Web Developer относительный фон исчезает, если таблица стилей находится не в том же каталоге, что и документ. 2. По спецификациям, когда вы что-то выкладываете в инет, это должно быть там все время. Когда я создаю что-то новое, я создаю это в новой папке или с новым именем файла и оставляю все старые документы в покое.

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