You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Web二次部署内容未生效,请求排查原因

Flutter Web更新部署后内容未生效的排查方案

以下是针对更新后旧UI和URL依然显示问题的具体排查方向:

1. 浏览器端缓存干扰

  • 强制刷新页面(Windows:Ctrl+F5;Mac:Cmd+Shift+R),绕过浏览器本地缓存加载最新资源。
  • 打开浏览器开发者工具(F12),在「Network」面板勾选「禁用缓存」选项后重新加载页面,验证是否能获取新内容。
  • 进入「Application」面板,找到「Service Workers」选项,注销已注册的Service Worker,并清除「Storage」下的所有缓存数据。

2. 部署文件未完全覆盖

  • 手动清除服务器上/usr/share/nginx/html目录下的所有旧文件,再重新上传新的build/web产物,避免部署工具跳过文件替换。
  • 本地先验证构建产物:执行flutter build web --release后,打开本地build/web/index.html,确认修改的文本和URL已正确生成,排除构建过程的问题。

3. 调整Nginx缓存策略

虽然你未配置缓存,但可以针对index.html添加强制不缓存的规则,避免浏览器或中间层缓存该文件:

server {
    # 其他原有配置...

    location = /index.html {
        add_header Cache-Control "no-cache, no-store, must-revalidate";
        add_header Pragma "no-cache";
        add_header Expires 0;
    }
}

修改后重启Nginx生效。

4. 禁用Flutter Service Worker缓存

Flutter Web默认会生成Service Worker来缓存资源,可能导致旧版本内容无法更新。可以尝试构建时禁用它:

flutter build web --release --no-service-worker

重新部署生成的产物。

5. 中间层缓存(CDN/反向代理)

如果你的服务器前端还存在CDN或其他反向代理服务,这些服务可能缓存了旧内容。需要:

  • 登录CDN控制台,手动刷新缓存。
  • 调整CDN缓存规则,设置index.html不被缓存,或缩短静态资源的缓存有效期。

内容的提问来源于stack exchange,提问作者ololo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:28:08