Flutter Web :使用 Flutter build Web 构建时缺少 main.dart.js 和 Java



我在使用 Flutter web 时遇到了一个问题,在任何项目中运行flutter build web时都不会生成 JavaScript 文件,导致 prjects 简单地加载一个空白页面。

我目前使用的是 1.18.0 版测试版通道,每个项目都会发生这种情况,即使是 Flutter 使用flutter create .生成的默认计数器项目也是如此。没有抛出任何警告或错误,如果我使用flutter run --release -d chrome运行 Web 项目,一切都按预期工作。

我已经按照文档中使用 Flutter 构建 Web应用程序一文中描述的步骤进行操作,我记得半年前我能够按照相同的步骤使用 Flutter 构建和托管一个 Web 项目,没有任何问题。

我的 Flutter 配置和 SDK 似乎已经到位。如果我运行flutter doctor -v,这就是我得到的

[√] Flutter (Channel beta, 1.18.0-11.1.pre, on Microsoft Windows [Versión 10.0.18363.836], locale es-ES)
• Flutter version 1.18.0-11.1.pre at D:ProgramasFlutterflutter
• Framework revision 2738a1148b (4 weeks ago), 2020-05-13 15:24:36 -0700
• Engine revision ef9215ceb2
• Dart version 2.9.0 (build 2.9.0-8.2.beta)

[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at C:UsersdiegoAppDataLocalAndroidsdk
• Platform android-28, build-tools 28.0.3
• Java binary at: D:ProgramasAndroid Studiojrebinjava
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[√] Chrome - develop for the web
• Chrome at C:Program Files (x86)GoogleChromeApplicationchrome.exe
[√] Android Studio (version 3.6)
• Android Studio at D:ProgramasAndroid Studio
• Flutter plugin version 46.0.1
• Dart plugin version 192.8052
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
[√] Connected device (2 available)
• Web Server • web-server • web-javascript • Flutter Tools
• Chrome     • chrome     • web-javascript • Google Chrome 83.0.4103.61

这里可能出了什么问题?为什么没有生成 JavaScripts 文件?

请检查以下文件夹:

./your-app/build/web

我遇到了同样的问题,并且正在检查错误的文件夹(./your-app/web(。

  1. 请确保从以下位置复制文件:
    ./your-app/build/web

  2. 如果错误仍然存在,请更新索引.html
    示例:
    a. Web 服务器上的 Flutter 项目:webserver/flutter_project/index.html
    b. 打开索引.html
    c. 将<base href="/">更新为<base href="/flutter_project/">

就我而言,在为 web 构建时不会生成flutter.js文件。 我所做的是运行flutter clean然后再次运行flutter build web。 您应该看到丢失的js文件,并确保检查build/web而不是在根目录上web

对于那些无法打开构建版本的人: 转到"app/build/web"并从那里运行服务器python -m http.server 8000,或使用dhttpd包

文档

对我有用的最简单的事情是更新到<base href="./">来自<base href="/">.所以当前路径而不是根

在我的情况下(IIS(.json文件在我的目录中可用,但不是由Web服务器发布的。我必须添加MIME类型才能允许它们。对于.otf文件,同样的问题。

我的问题是 .gitignore 有*.dart.js,这不允许 main.dart.js 文件上传到存储库。

由于我的部署路径为/dist/web,因此我添加了以下异常:

!/dist/**

因此,该路径中的每个文件都会上传。

最新更新