过去几天,我对firebase网站https://scratch-gui.firebaseapp.com/进行了一些更改。在我开发网站时,我计划定期部署和构建网站。
如果我在普通浏览器中访问该网站,则不会显示我最近的更改。例如,当我访问主页时,我的导航仍然如下所示:
但是,如果我在隐身窗口或以前没有访问该网站的设备中访问,它看起来像这样:
我认为可能是因为缓存而且可能需要几个小时,但此时已经有好几天了。 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调试器的服务工作者列表。
答案 0 :(得分:1)
如果没有看到您的配置和相关的实际网址,我很难说,所以我会在此背景下介绍Firebase Hosting的工作原理。
部署更新(firebase deploy
)时,Firebase Hosting会刷新所有CDN边缘。 Firebase Hosting没有指定最小缓存间隔。
但您当然可以在firebase.json
配置文件中为您的内容指定缓存,如下所示:https://firebase.google.com/docs/hosting/url-redirects-rewrites#section-headers