что такое тег style.css? ver = 1? - PullRequest
       26

что такое тег style.css? ver = 1?

19 голосов
/ 23 октября 2009

Я обнаружил, что некоторые веб-сайты используют тег css, например style.css?ver=1. Что это?

Какова цель ?ver=1?

Как мне сделать это в коде?

Ответы [ 6 ]

27 голосов
/ 23 октября 2009

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

8 голосов
/ 23 октября 2009

Добавление '? Ver = 1' делает HTTP-запрос похожим на GET-запрос с параметрами, и хорошо функционирующие браузеры (и прокси-серверы) откажутся кэшировать параметризованные запросы. Конечно, браузеры с хорошим поведением (и прокси) также должны обращать внимание на заголовки ответов «Cache-control: no-cache», «Expires», «Last-Modified» и «ETag» (все они были добавлены в HTTP указать правильное поведение кеширования).

Метод «? Ver = 1» - это дорогой способ заставить поведение, когда разработчик сайта не знает, как (или слишком ленив) реализовать правильные заголовки ответа. В частности, это означает, что при каждом запросе страницы будет запрашиваться этот файл CSS, хотя на практике файлы CSS изменяются редко, если вообще изменяются.

Моя рекомендация? Не делай этого.

4 голосов
/ 23 октября 2009

Я думаю, что ?ver=1 для версии нет. веб-приложения. Каждый раз, когда создается новая сборка, приложение может обновлять ver до новой версии. Это сделано для того, чтобы браузер загрузил новый файл CSS и не использовал кэшированный (оба используют разные имена файлов)

Вы можете обратиться к этому сайту: http://www.knowlegezone.com/36/article/Technology/Software/JavaScript/CSS-Caching-Hack----javascript-as-well

4 голосов
/ 23 октября 2009

Цель? Ver = 1 состоит в параметризации файла css, поэтому, когда они публикуют новый файл style.css, они поднимают версию, и это заставляет клиента загружать новый файл, вместо извлечения из кэшированной версии .

2 голосов
/ 08 октября 2013

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

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

<link rel="stylesheet" href="style.css?v=1.1"> 

В приведенном выше случае при загрузке веб-страницы браузер будет обрабатывать «style.css» как другой файл вместе с «? V = 1.1». Следовательно, браузер вынужден загружать свежую копию, если таблица стилей или файл сценария.

1 голос
/ 24 октября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...