Firebase 托管 - 强制浏览器在新部署时重置缓存?
Firebase hosting - force browser to reset cache on new deploys?
我有一个使用 create-react-app 构建并托管在 Firebase 托管上的网站。我可以做些什么来指定在新部署后需要更新浏览器缓存,最好只更新自上次部署以来已更改的页面、资产和样式表?
有没有办法访问部署 ID 并将其(或任何其他唯一标识符)包含在 headers 中,以便浏览器可以与本地存储或缓存中的内容进行比较,并确定是否存在硬刷新是必要的?我查看了 Firebase Deploying as well as Full config 文档,但没有提及如何访问上次部署时的托管元数据。
将 Cache-Control
值设置为 max-age=[any number]
似乎并不理想,因为它忽略了下一次部署的时间(除非有定期计划,否则一开始可能不知道)。
我明白了。必须根据 this Github comment:
更新 firebase.json
文件
{
"hosting": {
"headers": [
{ "source":"/service-worker.js", "headers": [{"key": "Cache-Control", "value": "no-cache"}] }
]
}
}
请在您的 firebase.json 中设置“max-age=0”。
"headers": [
{
"source": "/service-worker.js",
"headers": [
{
"key": "Cache-Control",
"value": "no-cache, no-store, must-revalidate"
}
]
},
{
"source": "**/*.@(jpg|jpeg|gif|png|svg|webp|js|css|eot|otf|ttf|ttc|woff|woff2|font.css)",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=0"
}
]
}
]
我有一个使用 create-react-app 构建并托管在 Firebase 托管上的网站。我可以做些什么来指定在新部署后需要更新浏览器缓存,最好只更新自上次部署以来已更改的页面、资产和样式表?
有没有办法访问部署 ID 并将其(或任何其他唯一标识符)包含在 headers 中,以便浏览器可以与本地存储或缓存中的内容进行比较,并确定是否存在硬刷新是必要的?我查看了 Firebase Deploying as well as Full config 文档,但没有提及如何访问上次部署时的托管元数据。
将 Cache-Control
值设置为 max-age=[any number]
似乎并不理想,因为它忽略了下一次部署的时间(除非有定期计划,否则一开始可能不知道)。
我明白了。必须根据 this Github comment:
更新firebase.json
文件
{
"hosting": {
"headers": [
{ "source":"/service-worker.js", "headers": [{"key": "Cache-Control", "value": "no-cache"}] }
]
}
}
请在您的 firebase.json 中设置“max-age=0”。
"headers": [
{
"source": "/service-worker.js",
"headers": [
{
"key": "Cache-Control",
"value": "no-cache, no-store, must-revalidate"
}
]
},
{
"source": "**/*.@(jpg|jpeg|gif|png|svg|webp|js|css|eot|otf|ttf|ttc|woff|woff2|font.css)",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=0"
}
]
}
]