【问题标题】:Why is Lighthouse failing my cached files?为什么 Lighthouse 无法让我的缓存文件失败?
【发布时间】:2019-04-30 16:31:27
【问题描述】:

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

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

我需要做什么来纠正这个问题?

请看下面的截图:

【问题讨论】:

    标签: apache http caching audit lighthouse


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        在我的情况下,要修复 Lighthouse 中 Serve static assets with an effective cache policy 错误,我必须将 max-age 值增加到 97 天:

        Cache-Control: max-age=8380800
        

        我的 Lighthouse 版本是 5.7.0

        【讨论】:

          猜你喜欢
          • 2013-02-24
          • 1970-01-01
          • 2013-05-27
          • 1970-01-01
          • 1970-01-01
          • 2019-10-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多