queryString在这个样式表的href中做了什么?

时间:2010-10-14 00:15:15

标签: css

http://html5boilerplate.com/浏览样板代码我对此用法感到困惑:

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

2 个答案:

答案 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)查询字符串再次更改之前,不会再次下载。