【发布时间】:2018-10-02 06:29:24
【问题描述】:
在过去的几天里,我对我的 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 调试器的 service worker 列表。
【问题讨论】:
-
Chrome Dev Tools的Application页面是否安装了Service Worker?
-
我从 chrome 开发工具中添加了 service worker 列表。这有帮助吗?我想我不确定这意味着什么?
-
Service Worker 通常用于在客户端缓存内容,以便在浏览器中缓存旧版本。 How you can unregister a SW in Chrome 将是一个很好的调试步骤。