【问题标题】:Why is the browser not caching my static content?为什么浏览器不缓存我的静态内容?
【发布时间】:2015-03-09 12:34:17
【问题描述】:

我一直在努力让它工作几个小时。即使Expires 标头设置为从现在起一周后,浏览器每次都在下载文件。也在火狐上试过,结果一样。如何指定这个资源仍然有效,不需要每次都下载?

这是 Chrome 网络日志

这是 javascript 文件的 Chrome 标头。

这是我的 .htaccess 代码。我已确认 mod_expire 已启用。

ExpiresActive On

<FilesMatch "\.(css|js|gif|png|jpg|jpeg)$">
  ExpiresDefault "access plus 1 week"
  Header append Cache-Control "public"
</FilesMatch>

【问题讨论】:

  • 您是否检查了调试工具设置以在它们处于活动状态时禁用缓存?
  • 是的,检查了它们。正在缓存 Google 字体。

标签: apache http browser-cache cache-control


【解决方案1】:

更改 httpd.conf

<IfModule mod_expires.c>
          <FilesMatch "\.(jpe?g|png|gif|js|css)$">
                      ExpiresActive On
                      ExpiresDefault "access plus 1 year"
          </FilesMatch>
</IfModule>

将缓存设置为 2 年

Header set Cache-Control "max-age=63072000, public"

【讨论】: