.htaccess - 如何设置缓存修改后过期呢?

标签 .htaccess browser-cache cache-control last-modified mod-expires

我正在使用 .htaccess 文件来设置网站的标题。我想知道如何将文件缓存设置为在对其进行修改后过期。这可能吗?

即这行得通吗?

ExpiresDefault "modification"

换句话说,我希望缓存一直保留到服务器修改文件为止。

最佳答案

过期修改设置缓存在文件最后一次修改后的某个时间过期。即使您的文件在设置的缓存时限内再次被修改,已经缓存该文件的客户端也不会寻找新版本。 Apache Expiration包含有关过期模块的信息。

这是一个例子:

#BEGIN Cache-Control Headers
<ifModule mod_headers.c>
   <filesMatch "\.(css|js)$">
      ExpiresDefault "modification plus 4 weeks"
  </filesMatch>
</ifModule>
# END Cache-Control Headers

如果您的 css 文件在 1 周前被修改,缓存将在 3 周内过期,而不是 4 周。

那么如何让新修改的 css 文件在缓存后显示出来呢?

如果您修改 CSS 文件,则在缓存过期之前,这些更改将不会显示在缓存的浏览器中。解决此问题的一种方法是更改​​缓存的 css 文件的名称。 (示例重命名 main1.css -> main2.css )

关于.htaccess - 如何设置缓存修改后过期呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10256051/

相关文章:

Firefox: "Document Expired Error"用于 POST 页面

javascript - HTTP 缓存 - 设置缓存控制 header 后,资源未从浏览器缓存提供服务

java - 如何使用 JSF outputStylesheet 实现 CSS Cache Busting?

apache - 需要在.htaccess中为Magento网站创建RewriteRule

.htaccess - mod_rewrite,进行更改时不重写

regex - 正则表达式 (.htaccess) 中 ^(.*)$ 和 ^ 之间的区别

redirect - 302 重定向在浏览器中保存多长时间?

html - 在每个页面加载导航菜单

PHP 缓存 header 覆盖

url - 将编码字符添加到 url 会破坏 htaccess