Flutter组件包自定义字体在主Web应用中无法识别求助
Flutter组件包自定义字体在主Web应用中失效问题
项目结构
app/ widgets/
app:主Flutter Web应用widgets:可复用Flutter组件包,供app及其他项目调用
问题表现
在widgets组件内使用自定义字体,运行app时组件标题无法显示,字体未被识别。
当前已做配置
- 字体文件放置路径:
widgets/assets/fonts widgets/pubspec.yaml字体配置:
flutter: fonts: - family: <FONT_NAME> fonts: - asset: assets/fonts/<FILE> weight: 400
- 组件内字体使用代码:
final style = TextStyle(fontFamily: <FONT_NAME>, fontWeight: FontWeight.w600, ontSize: 48, height: 48);
注:未在app/pubspec.yaml中单独导入该字体
需要补充/修正的配置
- 字重不匹配:配置里仅声明了
weight:400的字体文件,但代码中使用了FontWeight.w600。如果你的字体文件没有对应w600的字重,要么补充该字重的字体文件并在pubspec.yaml中添加配置项,要么把代码中的fontWeight改为w400。 - 代码笔误修正:代码里的
ontSize是拼写错误,需改为fontSize,否则样式无法正常生效。 - 主应用资源关联:Flutter组件包的字体资源需要主应用确认加载。确保
app/pubspec.yaml已正确依赖widgets包,执行flutter pub get后,重启应用并执行flutter clean清理缓存。对于Web项目,可在app/web/index.html中添加字体预加载标签提升可靠性:
<link rel="preload" href="packages/widgets/assets/fonts/<FILE>" as="font" type="font/ttf" crossorigin>
- 路径校验:确认
widgets/pubspec.yaml中asset路径与实际文件路径完全一致(包括文件名大小写),避免因路径错误导致资源无法加载。
内容的提问来源于stack exchange,提问作者GGirotto
相关产品推荐
相关产品推荐

