【问题标题】:.htaccess cache control max age doesn't work.htaccess 缓存控制最大年龄不起作用
【发布时间】:2017-07-26 09:11:20
【问题描述】:

我在我的网站上设置缓存过期日期时遇到问题。这是我在 .htaccess 文件中使用的代码:

<FilesMatch "\.(xml|txt|css|js)$">
    Header set Cache-Control "max-age=7200, proxy-revalidate"
</FilesMatch>

我提到的文件类型应该有 2 小时的过期日期,但经过硬刷新后,我发现所有这些文件的过期日期都是一周。例如,我在 Chrome 检查页面中选择 .css 文件并看到以下信息:

接受范围:字节

Cache-Control:max-age=8000, proxy-revalidate

连接:关闭

内容编码:gzip

内容长度:20229

内容类型:文本/css

日期:格林威治标准时间 2017 年 7 月 26 日星期三 09:02:31

ETag:"1c8c1-55513528cb363-gzip"

到期时间:格林威治标准时间 2017 年 8 月 2 日星期三 09:02:31

最后修改时间:格林威治标准时间 2017 年 7 月 24 日星期一 17:12:41

服务器:Apache

变化:接受编码

缓存控制最大年龄有效,但为什么文件的过期日期只有一周后?这是某种服务器缓存还是我做错了什么?

【问题讨论】:

  • 您是否启用了 AllowOveride?没有它,Apache 将不会处理 .htaccess。
  • 是的,它已启用。此外,据我所知,max-age 正在工作,因为我在文件属性窗口中看到了该值,但不知何故“过期”字段会覆盖缓存过期日期。
  • 您是否检查了 /etc/apache 文件夹中的 *.conf 文件,以及目录层次结构中更高的其他 .htaccess 文件是否有可能被覆盖的缓存值?
  • 没有其他 .htaccess 文件。我不知道 .conf 文件,必须与服务器提供商核实,很快就会这样做。感谢您的提示。

标签: apache .htaccess browser-cache cache-control


【解决方案1】:

刚刚发现 cache-control:max-age 总是覆盖 expires 标签所以一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2017-05-26
    • 1970-01-01
    相关资源
    最近更新 更多