【问题标题】:Flutter web deployed with firebase hosting does not respect refresh in Safari使用 Firebase 托管部署的 Flutter Web 不尊重 Safari 中的刷新
【发布时间】:2020-07-03 10:19:36
【问题描述】:

我有一个部署在 Firebase 托管上的 Flutter Web 应用。部署新版本时,即使进行刷新,Safari 也不会选择新版本。我认为这是由于安装了服务工作者,它将为旧内容提供服务。如何绕过这个问题?我知道硬刷新可以解决问题,但这不是一个好的解决方案,因为我们不能指望用户知道这样做。

需要客户端代码的一种替代方法是,我跟踪当前加载的应用程序的当前版本,如果该更改,我在检测到新版本可用时创建“新版本可用”屏幕,并执行来自客户端的 location.reload(true) 调用以绕过缓存并安装新的 service worker。

还有其他选择吗?

【问题讨论】:

  • 我有同样的反应问题,即使没有服务工作者运行。您找到解决方案了吗?
  • 你在你的flutter项目的web文件夹的索引文件中增加了版本吗?我有同样的问题,我只是增加了 web 文件夹中 index.html 中的 JS 文件的版本。

标签: flutter mobile-safari firebase-hosting flutter-web


【解决方案1】:

在最近的版本中,每次构建到 flutter_service_worker.js URL 时,它们都是 appending a random hash,因此它应该会破坏缓存并正确刷新。

【讨论】:

  • 是的,我可以确认这现在不是问题 :)
猜你喜欢
  • 2021-09-27
  • 2021-03-28
  • 2021-02-15
  • 2021-01-13
  • 2020-08-18
  • 2020-10-26
  • 2020-08-07
  • 2015-04-18
  • 2022-01-13
相关资源
最近更新 更多