我正在使用Google Lighthouse计算性能得分。标准之一是缓存静态资产,例如图像和脚本。
我无法控制所有这些,但是我可以控制缓存的已设置为30天。但是,灯塔仍在报告这些问题。 Lighthouse 确实将其报告为具有30天的缓存,但仍然报告为问题。
该如何纠正?
请参见下面的屏幕截图:
答案 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