我正在尝试使用缓存来加快网站的响应时间。我读过的大多数文档都建议将有效期设置为从访问时间开始 +1 个月,如下所示:
ExpiresActive On
ExpiresByType text/css "access plus 1 month"
我担心如果我更新 css 文件,客户端将无法获得更新的文件。
如果文件被修改,是否可以确保客户端下载文件的新版本?
任何帮助非常感谢
答案1
您的担心是正确的——浏览器检索到该文件的客户端通常会在访问该文件 1 个月后才能收到更新版本,除非他们碰巧清除了浏览器缓存或重新加载了页面。
解决此问题的一种方法是,当您更新 CSS 文件时,将引用它的 HTML 更改为在链接标记的 href 属性末尾(即 .css 之后)包含 ?v=2 或 ?v=3 等。浏览器将其视为唯一 URL,因此将下载新副本,但它将指向您服务器上的相同物理 .css 文件。
<link rel="stylesheet" type="text/css" href="/styles.css" />
变成
<link rel="stylesheet" type="text/css" href="/styles.css?v=2" />