停止在缓存内存中保存 Flutter web Firebase 托管
Stop saving in cache memory Flutter web Firebase hosting
我使用 Flutter web 设计了一个 web 应用程序。我用 Firebase 主机托管它。但在部署到 firebase 后,它没有显示我的代码更改。它仍在显示我的旧版本网络应用程序。但是我可以通过清除浏览器的缓存或 ctrl+refresh
来解决这个问题。但我不想每次部署到 firebase 时都这样做。如何停止在高速缓存中保存我的网络应用程序?
将版本号附加到您的 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.
另一种方法是通过 HTTP headers 阻止缓存。
对于 Firebase 托管将是:https://firebase.google.com/docs/hosting/full-config#headers
我想你可以在 firebase.json
:
的站点条目中设置类似的东西
"headers": [
{
"source": "**",
"headers": [
{
"key": "Cache-Control",
"value": "no-cache"
}
]
}
]
我使用 Flutter web 设计了一个 web 应用程序。我用 Firebase 主机托管它。但在部署到 firebase 后,它没有显示我的代码更改。它仍在显示我的旧版本网络应用程序。但是我可以通过清除浏览器的缓存或 ctrl+refresh
来解决这个问题。但我不想每次部署到 firebase 时都这样做。如何停止在高速缓存中保存我的网络应用程序?
将版本号附加到您的 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.
另一种方法是通过 HTTP headers 阻止缓存。 对于 Firebase 托管将是:https://firebase.google.com/docs/hosting/full-config#headers
我想你可以在 firebase.json
:
"headers": [
{
"source": "**",
"headers": [
{
"key": "Cache-Control",
"value": "no-cache"
}
]
}
]