首页 文章

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

提问于
浏览
1

在过去的几天里,我对我的firebase网站_1571120进行了一些更改 . 在我开发网站时,我计划定期部署和构建网站 .

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

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 回答

  • 1

    如果没有看到您的配置和有问题的实际网址,就很难说清楚了,所以我将介绍Firebase Hosting在此上下文中的工作原理 .

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

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

相关问题