Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 3

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

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

Абсолютные пути
Браузер может загружать только 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 - это потому, что той же политики происхождения.

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

ИЗМЕНИТЬ

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

Ответ 8

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

Ответ 9

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

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

Ответ 10

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

Ответ 11

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

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

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

Ответ 12

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

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

Ответ 13

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

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