我正在尝试使用新的应用托管服务为 Firebase 中托管的所有文件设置一年的缓存控制(我是 Firebase 的新手,但我使用过多个其他云,从未遇到过此问题) )
我更改为 Firebase,因为 Vercel 不提供 h3 Quic 连接。
在我的 NextJS 配置中,我有以下规则:
{
source: '/:all*(svg|jpg|png|gif|ico|webp|jpeg|js|css|woff|woff2|ttf|otf|eot|json)',
locale: false,
headers: [
{
key: 'Cache-Control',
value: 'public, max-age=31600000',
}
],
},
这适用于 Vercel,我的所有文件都会被缓存,但不适用于 Firebase 应用程序托管,当协议为 H3 时,缓存设置为一分钟:
我还检查了 firebase.json 但它不起作用并且有意义,因为我们不需要初始化 firebase。好像 h3 何时覆盖该标头。
另一件事是它仍然使用gzip不应该是brotli吗?
有人知道解决这个问题的方法还是我错过了什么?而且,自从 App Hosting 于 4 个月前推出以来,很难找到答案,所有搜索都指向 Firebase Hosting,而不是 Firebase App Hosting。
经过更多研究并浏览文档(因为我不需要阅读它们),我发现谷歌在限制中添加了这个:
修改Cache-Control header,将CDN缓存限制为60s;在 未来,当 App Hosting 能够快速清除缓存时 部署后,此限制将被取消。
因此,如果有人遇到同样的问题,我们现在需要等待或转向 Firebase 的托管功能。