【问题标题】:Stop saving in cache memory Flutter web Firebase hosting停止在缓存中保存 Flutter Web Firebase 托管
【发布时间】:2020-07-31 20:21:03
【问题描述】:

我使用 Flutter Web 设计了一个 Web 应用程序。我用 Firebase 主机托管它。但是在部署到 Firebase 后,它没有显示我的代码的更改。它仍在显示我的旧版网络应用程序。但是我可以通过清除浏览器的缓存或ctrl+refresh来解决这个问题。但我不想每次部署到 Firebase 时都这样做。如何停止将我的 Web 应用程序保存在缓存中?

托管链接:https://frcovid19dashboard.web.app

【问题讨论】:

  • 非常感谢您的提问,这正是我想要的。而且这个网站很棒,就像进步的设计和速度一样,真的很漂亮。

标签: firebase flutter dart firebase-hosting flutter-web


【解决方案1】:

将版本号附加到您的 main.dart 文件。每次您进行需要浏览器清除现金的更改时,请在上传更改之前更改附加的版本号,以便浏览器知道某些内容发生了变化并需要清除现金。例如:

第一个版本:

<script src="main.dart.js?version=1" type="application/javascript"></script>

下次您进行更改时:

<script src="main.dart.js?version=2" type="application/javascript"></script>

等等。检查这个link

【讨论】:

【解决方案2】:

另一种方法是防止通过 HTTP 标头进行缓存。 对于 Firebase 托管,这将是:https://firebase.google.com/docs/hosting/full-config#headers

我猜你可以在firebase.json 的站点条目中设置类似的内容:

"headers": [
  {
    "source": "**",
    "headers": [
      {
        "key": "Cache-Control",
        "value": "no-cache"
      }
    ]
  }
]

【讨论】:

  • 对于那些想知道在哪里添加它的人,这也花了很多时间 xD,将它添加到您的 Fluutter 项目中的 firebase.json 文件中。谢谢@klydra
  • 已将其添加到帖子中。很高兴它帮助了@ManishKumar:D
  • 这对我不起作用。
  • 鉴于stackoverflow.com/questions/49547 此处的讨论,可能值得将此答案中的"value": "no-cache" 行替换为"value": "no-cache, no-store, must-revalidate"
猜你喜欢
  • 2018-05-07
  • 2016-12-05
  • 2020-08-07
  • 2017-07-20
  • 1970-01-01
  • 2020-08-18
  • 2020-03-02
  • 2018-07-13
  • 2020-12-07
相关资源
最近更新 更多