我遇到了 Flutter Web Service Worker 缓存问题。更新我的 Flutter Web 应用程序时,
flutter_bootstrap_js
中的 Service Worker 版本会更新,但实际内容不会立即反映更改。
我正在使用 Flutter Web 配置,其中
{{flutter_bootstrap_js}}
被替换为 index.html
中的实际引导代码:
<script>
{{flutter_bootstrap_js}}
</script>
这会在代码中正确生成更新的 Service Worker 版本:
```javascript
_flutter.loader.load({
serviceWorkerSettings: {
serviceWorkerVersion: "382593536"
}
});
```
当 Service Worker 版本在
flutter_bootstrap_js
中更新时,更改应在刷新后立即反映出来。
尽管代码中存在新的 Service Worker 版本,旧版本仍然存在,并且更改仅在显着延迟(数小时或第二天)后才会出现。
如果您能深入了解这种缓存行为以及如何正确处理 Flutter Web 应用程序中的 Service Worker 更新,我们将不胜感激。
标签:
flutter
flutter-web
service-worker
caching
web
当 Service Worker 版本在
flutter_bootstrap_js
中更新时,更改应在刷新后立即反映出来。
该问题与 Cloudflare 缓存有关,而不是 Flutter Service Worker 本身。以下是发生的情况以及解决方法:
即使 Service Worker 版本在
flutter_bootstrap_js
中正确更新,Cloudflare 仍在提供资产的缓存版本,从而阻止立即加载新版本。
要解决此问题,您需要:
清除 Cloudflare 的缓存:
(可选)在开发过程中,您可以:
希望这可以帮助其他可能在 Cloudflare 背后的 Flutter Web 部署中遇到类似问题的人!
标签:
cloudflare
、flutter-web
、caching
、cdn