在过去的几天里,我对我的firebase网站_1571120进行了一些更改 . 在我开发网站时,我计划定期部署和构建网站 .
如果我在普通浏览器中访问该网站,则不会显示我最近的更改 . 例如,当我访问主页时,我的导航仍然如下所示:
但是,如果我访问隐身窗口或之前未访问该网站的设备,它看起来像这样:
我想也许是因为缓存而且可能需要几个小时,但此时已经有好几天了 . firebase部署缓存的默认设置是什么?
我对开发的关注较少,而且当我与其他人共享网站时更多 . 我希望在重新部署之后显示更改,而无需用户在每次访问时清除其缓存 . firebase上是否有缓存刷新时间的设置?我该怎么做才能确保我的用户获得我网站的最新版本?
更新:
我已将 firebase.json
更新为以下内容:
{
"hosting": {
"public": "build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
],
"headers": [
{
"source": "*.*",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=30"
}
]
}
]
}
}
现在看来,当我正常刷新时,它会恢复到旧网站 . 当我运行硬刷新时,它会显示该站点的最新版本 . 我知道这听起来很奇怪,所以我拍了一段视频 .
Youtube video of refresh vs hard refresh behavior
现在我真的很困惑可能导致这种情况 .
更新2:
这是chrome调试器中的服务工作者列表 .
1 回答
如果没有看到您的配置和有问题的实际网址,就很难说清楚了,所以我将介绍Firebase Hosting在此上下文中的工作原理 .
部署更新时,Firebase Hosting会刷新所有CDN边缘(
firebase deploy
) . Firebase Hosting没有指定最小缓存间隔 .但是您当然可以在
firebase.json
配置文件中为您的内容指定缓存,如下所示:https://firebase.google.com/docs/hosting/url-redirects-rewrites#section-headers