Flutter 防止缓存页面?

Flutter 防止缓存页面?,flutter,browser-cache,flutter-web,Flutter,Browser Cache,Flutter Web,在使用nginx部署flutter web项目时,我注意到,在执行“flutter构建web”之后,如果不删除缓存,旧文件仍在我的chrome浏览器中。如果我部署了更新,有没有办法强制用户自动刷新?每个浏览器都会进行缓存,如果您没有立即在客户端浏览器上看到更改,这是完全正常的。浏览器确实需要一些时间才能意识到服务器上的代码已经更改,并且需要更新其本地缓存。并且完全取决于客户端浏览器设置和客户端的连接速度 但是,如果您的情况要求客户立即更新网站的版本,那么有一个解决方法 main.dart.js文

在使用nginx部署flutter web项目时,我注意到,在执行“flutter构建web”之后,如果不删除缓存,旧文件仍在我的chrome浏览器中。如果我部署了更新,有没有办法强制用户自动刷新?

每个浏览器都会进行缓存,如果您没有立即在客户端浏览器上看到更改,这是完全正常的。浏览器确实需要一些时间才能意识到服务器上的代码已经更改,并且需要更新其本地缓存。并且完全取决于客户端浏览器设置和客户端的连接速度

但是,如果您的情况要求客户立即更新网站的版本,那么有一个解决方法

main.dart.js
文件如下所示


我的颤振应用程序
为了强制浏览器在每次需要时重新加载应用程序,请在main.dart.js脚本src中添加一个唯一的参数(例如,一个版本,尽管它可以是任何东西,甚至只是后面的一个随机数?)。新的index.html如下所示:


我的颤振应用程序
缺点:

  • 每次要部署时,都必须手动添加递增的版本号。也许你可以为此写一个脚本

  • 如果客户端的internet连接速度较慢,则仍然需要时间。当像Chrome这样的浏览器在互联网连接足够快之前显示(缓存)版本的网站时,问题就会出现

  • 以前的版本仍然保留在客户端浏览器上,直到超时


感谢您的回复!我注意到这并不是我所期望的颤振和nginx的问题。如果缓存出现问题,我还会使用键盘上的chrome快捷键清除缓存。