如何使用Flutter Web配置网站以不缓存数据?

6

我正在使用Flutter Web创建一个网站。该网站已经上线,我们每周发布一个版本。一些用户无法获取到新版本的Web应用程序。我想设置我的网站不缓存数据。

我添加了以下标签,但没有成功:

  <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
  <meta http-equiv="Pragma" content="no-cache">
  <meta http-equiv="Expires" content="0">

你是否正在使用CDN或边缘提供商?通常情况下,你应该优先设置HTTP响应头来进行缓存,而不是使用meta标签。 - Deadron
1个回答

8

这是一个关于你团队的决定,但你不想使用带版本号的URL来工作吗?这是我知道的最简单的缓存失效技巧。

index.html文件中,您可以在请求main javascript bundle file之前传递一个唯一的VERSION_CODE,例如:

<script src="main.dart.js?VERSION_CODE=7672" type="application/javascript"></script>

然后,每次在执行flutter build web命令之前,您需要更新index.html文件的VERSION_CODE,这样当客户端请求您的捆绑包时就会使其失效。您可以自动化此过程,但无法向flutter build web步骤传递环境变量。


1
我尝试过这个解决方案,但是没有成功。需要更新浏览器几次才能正常工作。 - Filipe Piletti Plucenio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接