3

I'm using Google Lighthouse to calculate a performance score. One of the criteria is caching static assets such as images and scripts.

I don't have control over all of these, but the ones I do have control over the cache has been set to 30 days. However, Lighthouse is still reporting these as an issue. Lighthouse does report these as having a 30d cache, but still reports as an issue.

What do I need to do to rectify this?

Please see screenshot below:

Lighthouse Static Assets

4

3 回答 3

5

我还有一个 30 天的缓存策略,为我解决这个问题的方法是将 public 和 no-cache 值添加到 Cache-Control 标头。

我只是在测试 Firebase 托管与我的旧主机(即 IIS)时才发现这一点。IIS 托管站点正在通过,即使它的 max-age 值更短。我检查了 chrome 中的网络开发人员工具,发现它在我的 IIS web.config 中的 Cache-Control 标头下有公共和没有缓存值,但我的 firebase.json 没有这些值。一旦添加,我再次通过!

现在为什么这对我来说是一个谜,但看看你是否可以再次添加和测试。

于 2019-05-29T18:21:14.883 回答
5

如果您对该审计的分数不大于或等于 90,Lighthouse 将警告您使用有效的缓存策略为静态资产提供服务。它还将在详细信息摘要中列出您的所有静态资产(无论它们是否通过) .

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

您可以通过将结果保存为 JSON 文件、在任何文本编辑器中打开它并搜索包含“ uses-long-cache-ttl ”的部分来验证这一点。

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

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

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

于 2018-11-30T04:07:29.043 回答
0

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

Cache-Control: max-age=8380800

我的灯塔版本是 5.7.0

于 2020-04-12T23:26:39.553 回答