浏览http://html5boilerplate.com/上的样板代码我对此用法感到困惑:
<link rel="stylesheet" href="css/style.css?v=1">
Run Code Online (Sandbox Code Playgroud)
扩展Simon的正确答案 ......
通常为了节省带宽,样式表(以及其他站点资产)向浏览器发送标题,表示它们应该从现在(通常是一年)过期很长时间.他们还发送304未修改的头.
这很好,但如果有人想要更新样式表怎么办?如果它被请求style.css,并且随后的请求是style.css,最终用户将永远不会重新下载它(无论如何不是一年).
要解决此问题,您可以附加在文件执行时更改的查询字符串.例如,它可以在PHP中轻松完成
<?php
$file = 'style.css';
?>
<style type="text/css" rel="stylesheet" href="<?php echo $file . '?v=' . filemtime($file); ?>" />
Run Code Online (Sandbox Code Playgroud)
现在,当文件更新时,查询字符串会更改,文件将重新加载到所有最终用户.在(a)到期时间结束或(b)查询字符串再次更改之前,不会再次下载.