gpt4 book ai didi

部署在 github.pages 上的 Flutter Web 应用程序无法访问某些 Assets

转载 作者:行者123 更新时间:2023-12-04 08:47:16 26 4
gpt4 key购买 nike

[更新 checkout 问题与步骤 github ]
在本地运行我的 Flutter Web 应用程序flutter run -d chrome --dart-define=FLUTTER_WEB_USE_SKIA=true --release按预期工作( video ),但构建它并将其部署到 github pages ( here )flutter_master build web --dart-define=FLUTTER_WEB_USE_SKIA=true --release不访问某些 Assets ,但成功访问其他 Assets 。

我已经尝试过这些解决方案( onetwo )'about.json'在本地按预期工作,但在部署时无法加载
'assets/about.json'在任何一种情况下都不起作用
使用中的代码可以简化为

rootBundle.loadString('about.json');

我仔细检查了 pubspec.yaml
flutter:
uses-material-design: true
assets:
- background_portrait.jpg
- background_landscape.jpg
- yf_icon_black.png
- yf_logo.png
- about.json
- apps.json
- news.json
- opensource.json
assets在构建文件夹中
一切都检查了,但问题仍然存在
在这些 logs你可以看到这些文件存在

最佳答案

对我有用的是完全消除 Assets 文件夹。我在根目录(与 lib 级别相同)中为我的每个 Assets 类型创建了一个文件夹,并将它们引用为 pubspec.yaml 中的目录:

  assets:
- json/
- avatars/
然后在加载它们时我使用了一个相对路径:
await rootBundle.loadString('json/structure.json');
Flutter 在构建过程中创建了一个 Assets 文件夹,并将我所有的 Assets 目录复制到其中。通过这种方式,我可以在 GitLab 页面上以调试和 Release模式加载 Assets 。
编辑:我包括用于 gitlab 页面构建管道的 gitlab.ci.yml 文件
image: registry.gitlab.com/famedly/containers/flutter-dockerimages:beta
pages:
script:
- flutter clean
- flutter config --enable-web
- flutter pub get
- flutter build web --release
- ls build/web
- cp -r build/web public
- ls public
artifacts:
paths:
- public
only:
- master
ls 您不需要这些命令仅用于在脚本开发期间记录输出。我把它们留在那里是因为它们没有害处,而且有时会派上用场。

关于部署在 github.pages 上的 Flutter Web 应用程序无法访问某些 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64250177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com