Firebase网站未针对之前查看过网站的用户进行更新(firebase缓存?)

时间:2018-04-21 21:14:05

标签: firebase firebase-hosting

过去几天,我对firebase网站https://scratch-gui.firebaseapp.com/进行了一些更改。在我开发网站时,我计划定期部署和构建网站。

如果我在普通浏览器中访问该网站,则不会显示我最近的更改。例如,当我访问主页时,我的导航仍然如下所示:

enter image description here

但是,如果我在隐身窗口或以前没有访问该网站的设备中访问,它看起来像这样:

enter image description here

我认为可能是因为缓存而且可能需要几个小时,但此时已经有好几天了。 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 list from debugger

1 个答案:

答案 0 :(得分:1)

如果没有看到您的配置和相关的实际网址,我很难说,所以我会在此背景下介绍Firebase Hosting的工作原理。

部署更新(firebase deploy)时,Firebase Hosting会刷新所有CDN边缘。 Firebase Hosting没有指定最小缓存间隔。

但您当然可以在firebase.json配置文件中为您的内容指定缓存,如下所示:https://firebase.google.com/docs/hosting/url-redirects-rewrites#section-headers