Flutter web项目部署到000webhost后仅显示白屏该如何解决?
Flutter Web release版本部署000webhost白屏解决方案
- 修正base href配置
Flutter Web默认base href为/,需和实际部署路径匹配:
部署在域名根目录时,构建命令调整为flutter build web --release --base-href "/"
部署在子目录时,将参数值替换为对应子目录路径(如"/myapp/"),路径前后需保留斜杠。构建完成后可打开build/web/index.html确认<base href="">的值是否正确,若不生效可手动修改。 - 配置静态资源MIME类型
000webhost默认未适配部分Flutter Web所需资源格式,可在build/web目录下新建.htaccess文件,添加以下配置:
上传时需确保DirectoryIndex index.html AddType application/javascript .dart.js AddType application/wasm .wasm AddType image/svg+xml .svg.htaccess文件同步上传到托管平台对应部署目录。 - 调整Web渲染器
部分托管环境下Canvaskit渲染器资源加载失败会导致白屏,可尝试使用HTML渲染器构建:flutter build web --release --web-renderer html
若需保留Canvaskit渲染器,可将Canvaskit资源打包到本地,构建时添加参数:--dart-define=FLUTTER_WEB_CANVASKIT_URL=/canvaskit/
再将官方Canvaskit资源放到部署路径对应目录下即可。 - 排查运行时错误
打开页面后按F12开启浏览器控制台,切换到Console标签查看报错:
若出现404错误,核对资源路径与base href配置是否匹配;
若出现JS运行时错误,检查业务代码是否调用了仅调试环境可用的API,或引入的第三方库不支持Web release环境。
内容的提问来源于stack exchange,提问作者Benjamin Mahmic
相关产品推荐
相关产品推荐

