Что делает queryString в этой таблице стилей href?

Просмотр кода шаблона на http://html5boilerplate.com/ Я озадачен этим использованием:

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

Ответ 1

Чтобы активировать обновление, если оно уже находится в кеше браузера. v, вероятно, является коротким для версии.

Ответ 2

Увеличить Саймон правильный ответ...

Часто, чтобы сохранить полосу пропускания, таблицы стилей (среди других активов сайта) отправляют заголовки в браузер, которые говорят, что они должны истекать долгое время (часто в год). Они также отправляют 304 не измененный заголовок.

Это здорово, но что, если кто-то хочет обновить таблицу стилей? Если он был запрошен как style.css, а последующие запросы были style.css, конечный пользователь никогда не перезагрузил его (не в течение года).

Чтобы бороться с этим, вы можете добавить строку запроса, которая изменяется, когда файл работает. Например, это можно легко сделать в PHP

<?php
    $file = 'style.css';
?>

<style type="text/css" rel="stylesheet" href="<?php echo $file . '?v=' . filemtime($file); ?>" />

Теперь, когда файл обновляется, строка запроса изменяется, и файл перезагружается для всех конечных пользователей. Он не будет загружен повторно до тех пор, пока (a) не истечет время истечения срока действия или (b) строка запроса снова изменится.