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

Зачем добавлять номер версии в путь к файлу CSS?

Я заметил, что некоторые сайты помещают номера версий (особенно) в путь к файлу CSS. Например:

<link rel="stylesheet" type="text/css" href="style.css?v=12345678" />

Какова основная цель поставить номер версии? Если цель состоит в том, чтобы помнить, когда последний файл CSS был обновлен в последний раз, не должен ли номер версии, добавленный как комментарий внутри файла CSS?

4b9b3361

Ответ 1

Из HTML5 ★ Boilerplate Docs:

Что такое? V = 1 "'? V = 1' это контроль версий JavaScript/CSS с Cachebusting

Зачем вам нужно кэшировать JavaScript CSS? Дизайн веб-страниц становится все богаче и богаче, что означает больше скриптов и таблиц стилей на странице. При первом посещении вашей страницы может потребоваться сделать несколько HTTP-запросов, но с помощью заголовка Expires вы делаете эти компоненты кэшируемыми. Это позволяет избежать ненужных HTTP-запросов при последующих просмотрах страницы. Заголовки Expires чаще всего используются с изображениями, но их следует использовать во всех компонентах, включая скрипты, таблицы стилей и т.д.

Как HTML5 Boilerplate обрабатывает JavaScript кэш CSS? HTML5 Boilerplate поставляется с файлами конфигурации сервера:.htacess, web.config и nginx.conf. Эти файлы сообщают серверу добавить элемент управления CSS-кэшем JavaScript.

Когда вам нужно использовать контроль версий с очисткой кеша? Традиционно, если вы используете заголовок Expires далекого будущего, вы должны изменять имя файла компонента при каждом изменении компонента.

Как использовать кешбустинг? Если вы обновите свой JavaScript или CSS, просто измените "? V = 1" на "? V = 2", "? V = 3"... Это заставит браузер думать, что вы пытаетесь загрузить новый файл, поэтому, решите проблему с кешем.

Ответ 2

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

Ответ 3

Если вы установите длительность срока действия кэшей в будущем, добавление ?v=2 даст серверу знать, что это новый файл, но вам не нужно будет давать ему уникальное имя (сохраняя глобальный поиск и замену).

Шаблон HTM5 также включает его в свой проект.

Посмотрите также это видео: пошаговое руководство по HTML5.

Ответ 4

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

Ответ 5

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

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

Подробное объяснение можно найти на html5boilerplate.com.

Ответ 6

Мои знания в значительной степени устарели относительно веб-сайтов, но переменная, хранящаяся в аргументе "href", получает браузер через HTTP. Используя обычные трюки в перезаписи URL-адресов, вы действительно можете иметь произвольный script, который выдает CSS-вывод при вызове. Этот вывод может отличаться в зависимости от аргумента.