Почему некоторые профессиональные веб-разработчики используют полные пути вместо относительных путей (например, для CSS, JavaScript, изображений, и т.д.)?

Я раньше думал, что все использовали относительные пути (например. /styles/style.css). Но интересно, почему некоторые popuar веб-разработчики (например, http://www.getfinch.com и http://31three.com/) используют полные пути (http://example.com/styles/style.css).

Так в основном я спрашиваю, почему некоторые профессиональные разработчики используют полные пути вместо относительных путей?

12
задан alexchenco 4 August 2010 в 02:24
поделиться

13 ответов

Оба они используют ExpressionEngine CMS, вероятно, так CMS связывает таблицы стилей.

Но на самом деле это вопрос предпочтений. Лично я использую родственник root /css/main.css , потому что таким образом, если я разрабатываю локально + в автономном режиме, мне не нужно беспокоиться о переключении константы WEB_ROOT на локальную (меньше хлопот + короче ).

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

9
ответ дан 2 December 2019 в 20:15
поделиться

Хорошая тема о Google Webmaster Central... Обсуждается перспектива ползания Google и легкость миграции.

Относительный путь против абсолютного пути

2
ответ дан 2 December 2019 в 20:15
поделиться

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

Кроме того, если вы когда-нибудь смените домен и захотите сохранить свой сайт. Вам нужно будет изменить только абсолютные ссылки, на которые вы ссылались, относительные ссылки будут работать нормально.

Абсолютные пути
В любой момент времени браузер может загрузить с сервера только 2 файла. Кроме того, пока он загружает JavaScript, он не загружает ничего другого. Поэтому, чтобы обойти ограничение в 2 файла, многие люди используют поддомены. например: http://css.example.com/style.css -- это делается для увеличения скорости загрузки страницы. Вы не можете достичь этого эффекта, используя относительные URL.

Одно из мест, где вам нужно быть осторожным с абсолютными путями, это при выполнении вызовов AJAX. Если вы жестко пропишите в своем javascript обращение к url : http://www.example.com/ajaxfile.php -- AJAX вызов будет работать нормально с http://www.example.com/index.php, но не с http://example.com/index.php -- это происходит из-за политики одинакового происхождения.

2
ответ дан 2 December 2019 в 20:15
поделиться

Я думаю, это всего лишь вопрос предпочтений. Я предпочитаю относительные URL, потому что их меньше приходится менять, если вы меняете (под)домены. Но если у вас есть CMS или блог, то обычно это все равно делается за вас (например, {SITE_URL}/path/to/page).

1
ответ дан 2 December 2019 в 20:15
поделиться

Я бы сказал либо личные предпочтения (скорее всего), либо переносимость, если ваши файлы ссылаются на полный URL-адрес, вам не нужно включать эти файлы при использовании html в другом месте, это ' Продолжу тянуть с удаленного сайта.

Это больше зависит от платформы, чем от чего-либо другого из моего опыта, например .Net использует ~ / для корневого каталога приложения, который отображается как /path/file.css в HTML, просто потому, что это простой путь для рендеринга со стороны кода ... здесь есть путь наименьшего сопротивления.

Другой случай: если вы загружаете материалы из другого домена, например sstatic.net здесь, у вас действительно нет выбора, он должен быть полностью квалифицированный.

1
ответ дан 2 December 2019 в 20:15
поделиться

Я думаю, что некоторые правила перенаправления Apache имеют проблемы с относительными путями. Выбор абсолютного пути гарантирует попадание в файл .htaccess.

1
ответ дан 2 December 2019 в 20:15
поделиться

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

0
ответ дан 2 December 2019 в 20:15
поделиться

Помимо очевидных проблем с переносимостью, абсолютные пути не являются хорошей идеей, если контент находится в одном домене, поскольку это может вызвать дополнительные поиски DNS в некоторых браузерах. Сохранение доменов относительно корня вашего сайта, когда это возможно, может помочь повысить производительность, если у вас нет CDN или отдельного набора доменов для размещения статического контента.

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

0
ответ дан 2 December 2019 в 20:15
поделиться

Кроме того, иногда, если код находится на стороне сервера, может быть переменная, которая выводит на печать полный URL. Если я правильно помню, обычно в темах WordPress они выводят правильный каталог именно так.

0
ответ дан 2 December 2019 в 20:15
поделиться

это зависит от приложения, которое вы создаете, например, ваше приложение использует mvc framework, как в вашем примере, они должны использовать абсолютные пути, потому что css, который они вызывают, не принадлежит к относительному пути на каждой странице.

EDIT

использование mvc framework не означает, что вы должны использовать абсолютные пути, но вы также можете использовать относительные пути. Это просто мое предпочтение.

0
ответ дан 2 December 2019 в 20:15
поделиться

Причина, по которой я всегда слышал, заключается в том, что это для оптимизации SEO при ссылках на страницы в том же домене. Я не уверен, сохранилось ли это от темных веков веб-разработки или это все еще правда, но это рационализация, которую мне всегда дают.

Я использую базовый атрибут в своем заголовке, чтобы использовать относительные URL-адреса. Таким образом, я могу протестировать на своем сервере разработки и просто изменить базовый URL-адрес или полностью его закомментировать. Хотя все ваши относительные URL-адреса должны быть записаны так, как будто они переходят из базового набора URL-адресов.

0
ответ дан 2 December 2019 в 20:15
поделиться

Некоторые люди даже скажут, что пути, начинающиеся с корня домена (например, /styles/style.css ), являются абсолютными (и, следовательно, проблематичными).

Вот в чем дело: как абсолютные / полностью квалифицированные схемы, так и относительные схемы решают проблемы, связанные с тем, что происходит, когда вы перемещаете вещи. Но они решают разные задачи. При полностью относительной схеме вы можете переместить все , относящееся к документу, по другому пути на сервере, и вы ничего не сломаете. Имея полностью квалифицированные (и некоторые абсолютные схемы), вы можете перемещать любой отдельный документ и ничего не ломать.

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

0
ответ дан 2 December 2019 в 20:15
поделиться

Если ваша страница вызывается с использованием протокола https, любой относительный путь css также будет вызываться с использованием протокола https. Вам действительно нужно зашифровать / расшифровать содержимое css? : D

Однако, если вы используете абсолютный путь, относящийся к внешнему CSS, вы можете указать используемый протокол, обычно http, а не https.

0
ответ дан 2 December 2019 в 20:15
поделиться
Другие вопросы по тегам:

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