为什么Lighthouse无法使我的缓存文件失败?

时间:2018-11-28 17:26:14

标签: apache http caching audit lighthouse

我正在使用Google Lighthouse计算性能得分。标准之一是缓存静态资产,例如图像和脚本。

我无法控制所有这些,但是我可以控制缓存的已设置为30天。但是,灯塔仍在报告这些问题。 Lighthouse 确实将其报告为具有30天的缓存,但仍然报告为问题。

该如何纠正?

请参见下面的屏幕截图:

Lighthouse Static Assets

3 个答案:

答案 0 :(得分:1)

如果您的审核得分不大于90,Lighthouse会警告您使用有效的缓存策略为静态资产提供服务。它还会列出所有静态资产(无论它们是否通过)。

由于您无法控制某些静态资产,因此您的得分似乎低于90,因此,您仍会在详细信息摘要中看到通过审核的静态资产。

您可以通过以下方式进行验证:将结果另存为JSON文件,在任何文本编辑器中将其打开,然后搜索包含“ uses-long-cache-ttl ”的部分。

下面的分数可能会小于90。

您可以通过访问以下链接来了解有关此特定审核的更多信息:

https://developers.google.com/web/tools/lighthouse/audits/cache-policy

答案 1 :(得分:1)

我还有30天的缓存策略,而对我来说,解决此问题的方法是将公共和无缓存值添加到Cache-Control标头中。

当我测试Firebase托管与旧的IIS托管时,我才发现这一点。即使它的max-age值较短,IIS托管站点也正在通过。我检查了chrome中的网络开发人员工具,发现它在IIS-web.config中的Cache-Control标头下具有公共且没有缓存值,但是firebase.json没有这些值。添加后,我又要过去了!

现在为什么通过了,这对我来说还是个谜,但是看看是否可以添加并再次测试。

答案 2 :(得分:0)

如果要在Lighthouse中修复具有有效缓存策略的服务静态资产错误,我必须将max-age值增加到97天:

Cache-Control: max-age=8380800

我的Lighthouse版本是5.7.0