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

Flutter Web构建后flutter_svg加载minified版本异常求助

问题描述

用flutter_svg展示SVG文件时,本地Debug模式正常运行,但构建后部署到GitHub Pages出现加载错误:

  • Debug模式成功加载的资源路径:localhost:39469/assets/assets/img/chakra-map/nochakra.svg
  • 构建版本错误加载的路径:assets/img/chakra-map/minified:fi.svg

报错信息:

Uncaught : Unable to load asset: "assets/img/chakra-map/minified:fi.svg".
c js_helper.dart:1196
$1 asset_bundle.dart:324
zJ zone.dart:1661
$0 future_impl.dart:127
q_ future_impl.dart:867
lj future_impl.dart:643
$0 future_impl.dart:713
aAf schedule_microtask.dart:40
aAz schedule_microtask.dart:49
$1 async_patch.dart:48

搜索构建后的代码发现,main.dart.js里存在生成压缩路径的逻辑:

grep -r 'minified'
main.dart.js:return"minified:"+a},
解决方法

1. 禁用SVG资源压缩

在项目的pubspec.yaml中添加配置,强制关闭flutter_svg的资源压缩功能:

flutter:
  assets:
    - assets/img/chakra-map/
  svg:
    use_minified: false

或者在应用初始化时,手动配置SvgCache关闭压缩:

void main() {
  SvgPicture.svgCache = SvgCache(
    useMinifiedAssets: false, // 禁用压缩资源加载
  );
  runApp(const MyApp());
}

2. 检查资源引用路径

确保代码里引用SVG的路径是完整的静态相对路径,比如:

SvgPicture.asset('assets/img/chakra-map/nochakra.svg')

避免使用动态生成路径的逻辑,防止被压缩工具篡改。

是否需要上报Bug?

这属于flutter_svg在Web构建场景下的路径处理Bug,启用资源压缩时路径拼接逻辑出错,生成了无效的minified:fi.svg格式路径。建议到flutter_svg的官方仓库提交Issue,带上你的复现步骤、构建环境和报错信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:52:19