mod_expires.c 和 mod_headers.c 根据 google pagespeed insights 不工作

mod_expires.c and mod_headers.c not working according to google pagespeed insights

当 运行 在 google pagespeed insights 上进行测试时,我得到错误 "Leverage browser caching"

我做了什么

  1. 确认模块已启用并在 Apache 中工作。

    如您在此处所见:http://noram.dk/phpinfo.php mod_expiresmod_headers 均已安装并启用。另外,当我写 sudo a2enmod expiressudo a2enmod headers 时,我得到一个 "module already enabled" (我确实重新启动了 Apache2)

  2. 再次确认模块已启用并在 Apache 中工作。

    为了仔细检查这一点,我还尝试从我的 .htaccess 文件中删除 <ifModule mod_expires.c><ifModule mod_headers.c> 行(以及结束标记 ofc.),以确认我仍然可以加载页面没有得到一个服务器。我还确认我的 .htaccess 文件正在运行,通过在其中写入一些垃圾,这确实会破坏我的网站。 (我也在其中使用了 RewriteRule)

总结一下

  1. 我很确定模块已安装并且 运行。
  2. htaccess 文件正在工作并且正在被服务器读取。
  3. 我已经按照我应该的方式将代码插入到 htaccess 文件中。

但是,我不断从 google PageSpeed insights 获得相同的反馈。

<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 1 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 2592000 seconds"
  ExpiresByType text/javascript "access plus 216000 seconds"
  ExpiresByType application/x-javascript "access plus 216000 seconds"
</ifModule>

您无能为力。结果如此是因为

http://static.hotjar.com/c/hotjar-98431.js?sv=5 (60 seconds)
https://www.google-analytics.com/analytics.js (2 hours)

因为 none 这些文件托管在您自己的计算机上,您无法控制它们的到期时间 headers。它们将分别按照服务器 static.hotjar.comgoogle-analytics.com 的定义进行缓存。