Flutter Web构建assets路径重复问题解决方案咨询
解决方案
1. 检查资源加载代码路径
确保代码中通过标准方式加载资源,避免手动拼接错误路径:
final String jsonString = await rootBundle.loadString('assets/categorias.json');
2. 修正pubspec.yaml配置
确认资源配置未出现嵌套目录的错误写法,保持与你的项目结构匹配:
flutter: uses-material-design: true assets: - assets/categorias.json
若之前配置过- assets/这类目录级规则,可能导致打包后出现assets/assets/的嵌套结构,需删除此类配置。
3. 打包时指定GitHub Pages适配的base-href
如果你的GitHub Pages部署在仓库子路径(如https://<用户名>.github.io/<仓库名>/),打包时必须添加--base-href参数,否则资源会从根目录查找导致404:
flutter build web --base-href "/<你的仓库名>/"
示例:仓库名为flutter-web-app时,命令为:
flutter build web --base-href "/flutter-web-app/"
4. 清理缓存后重新打包
删除项目根目录下的build文件夹,再重新执行打包命令,避免旧缓存导致的路径异常。
5. 验证部署文件结构
确保上传到GitHub Pages的是build/web目录下的所有内容,而非整个build文件夹。检查gh-pages分支中的文件,确认categorias.json位于assets/目录下,而非嵌套的assets/assets/中。
内容的提问来源于stack exchange,提问作者Victor Perdomo
相关产品推荐
相关产品推荐

