在过去的几天里,我对我的firebase站点https://scratch-gui.firebaseapp.com/进行了几次更改。当我开发这个站点时,我计划定期部署和构建该站点。
如果我在普通浏览器中访问该站点,则不会显示我最近所做的任何更改。例如,当我访问主页时,我的导航仍然是这样的:

但如果我在一个匿名窗口或以前没有访问过该站点的设备中进行访问,它看起来是这样的:

我认为这可能是由于缓存的原因,可能需要几个小时,但在这一点上已经有好几天了。firebase deploy缓存的默认设置是什么?
我关心的不是开发,而是当我与其他人分享网站的时候。我希望在重新部署后出现更改,而不需要用户在每次访问时清除缓存。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调试器的服务工作者列表。

发布于 2018-04-22 05:22:16
如果没有看到您的配置和实际的URL,很难说太多,所以我将转而描述Firebase托管在这种情况下是如何工作的。
Firebase主机在您部署更新时刷新所有CDN边缘(firebase deploy)。Firebase主机没有指定最小缓存间隔。
当然,您也可以在firebase.json配置文件中为内容指定缓存,如下所示:https://firebase.google.com/docs/hosting/url-redirects-rewrites#section-headers
https://stackoverflow.com/questions/49960266
复制相似问题