Относительные пути для включений в HTML? Возвращение к старым временам? - PullRequest
2 голосов
/ 22 декабря 2008

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

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

Ответы [ 5 ]

6 голосов
/ 22 декабря 2008

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

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

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

2 голосов
/ 22 декабря 2008

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

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

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

1 голос
/ 23 декабря 2008

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

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

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

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

1 голос
/ 22 декабря 2008

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

1 голос
/ 22 декабря 2008

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

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

...