【问题标题】:Flutter Web: Missing main.dart.js and JavaScript files when building with flutter build web, but working fine with flutter runFlutter Web:使用 flutter build web 构建时缺少 main.dart.js 和 JavaScript 文件,但使用 flutter run 可以正常工作
【发布时间】:2020-09-26 18:27:50
【问题描述】:

我遇到了 Flutter web 的问题,在任何项目中运行 flutter build web 时都不会生成 JavaScript 文件,导致项目只是加载空白页面。

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

我已按照文档中Building a web application with Flutter 文章中描述的步骤进行操作,我记得半年前我能够使用 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:\Programas\Flutter\flutter
    • 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:\Users\diego\AppData\Local\Android\sdk
    • Platform android-28, build-tools 28.0.3
    • Java binary at: D:\Programas\Android Studio\jre\bin\java
    • 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)\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 3.6)
    • Android Studio at D:\Programas\Android 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 文件?

【问题讨论】:

    标签: javascript flutter dart flutter-web dart-webui


    【解决方案1】:

    请检查以下文件夹:

    ./your-app/build/web

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

    【讨论】:

    • 真的!最后我想通了,忘记了这个问题,所以我没有更新它,但确实我找错了地方。谢谢!
    • myapp/build/web/index.html 运行时遇到同样的错误。它有main.dart.js 文件,但仍然报告错误。看来它是直接在根目录file:///D:/main.dart.js而不是同一个web文件夹中寻找罚款。
    【解决方案2】:

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

    Docs

    【讨论】:

      【解决方案3】:
      1. 确保复制文件,来自:
        ./your-app/build/web

      2. 如果错误仍然存​​在,请更新 index.html
        示例:
        一种。我在 web 服务器上的颤振项目:webserver/flutter_project/index.html
        湾。打开 index.html
        C。将<base href="/"> 更新为<base href="/flutter_project/">

      【讨论】:

      • 您也可以在 web/index.html 中而不是在 build/web/index.html 中更新 <base href="/">,以便 source index.html 文件包含正确的基本路径。这适用于flutter runflutter build web
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-08-27
          • 2020-11-12
          • 2020-06-08
          • 2019-09-28
          • 2022-12-04
          • 2020-04-01
          • 2021-12-12
          • 1970-01-01
          相关资源
          最近更新 更多