在http://html5boilerplate.com/浏览样板代码我对此用法感到困惑:
<link rel="stylesheet" href="css/style.css?v=1">
答案 0 :(得分:10)
如果已在浏览器缓存中,则强制更新。 v可能是版本的缩写。
答案 1 :(得分:7)
展开Simon's correct answer ...
通常为了节省带宽,样式表(以及其他站点资产)向浏览器发送标题,表示它们应该从现在开始(通常是一年)过期很长时间。他们还发送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)查询字符串再次更改之前,不会再次下载。