Lighthouse跑分时为什么总提示“未建立缓存策略”?

码农诗雅 阅读 13

我用 Lighthouse 测性能,每次都会报“未建立缓存策略”,但我的静态资源明明加了 Cache-Control: max-age=31536000 啊。是不是哪里没配对?

我用的是 Nginx,配置里写了:

location ~* .(js|css|png|jpg|jpeg|gif|ico|svg)$ {
    expires 1y;
    add_header Cache-Control "public, immutable";
}

本地 curl 看响应头也有缓存字段,但 Lighthouse 还是报这个警告,到底咋回事?

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
设计师艺凝
你这问题大概率是 Nginx 的 304 响应搞的鬼。Nginx 默认只在 200、204 等几个状态码下加 add_header,Lighthouse 抓到 304 响应时就没缓存头了,必须加上 always 关键字强制加上。

location ~* .(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable" always;
}
点赞 1
2026-03-04 08:33