Flutter web:无法加载资源:net::ERR_NAME_NOT_RESOLVED

Zah*_*hra 7 flutter flutter-web

Flutter web 只是在 chrome 中显示空白页面,我通过使用 inpectFailed to load resource: net::ERR_NAME_NOT_RESOLVED进入chrome控制台。即使使用 web 上的 flutter 计数器应用程序,它也可以重现。

我有 Flutter Channel stable 2.0.2and Android Studio (version 4.1.0)。它在模拟器中运行良好。我该如何解决这个问题? 错误图像

我尝试在 cmd 中执行以下命令,但仍然有问题:

ipconfig /flushdns
ipconfig /renew
ipconfig /registerdns
Run Code Online (Sandbox Code Playgroud)

Zah*_*hra 7

如果你连接到互联网,它会工作并且不会发生错误,但是在离线模式下的 flutter web 中会出现此错误,因为 CanvasKit 不会自动捆绑用于离线开发。

要使其离线工作,有两种方法:

1-简单的方法(在终端中运行此代码):

flutter run -d chrome --web-renderer html
Run Code Online (Sandbox Code Playgroud)

2-第二种方式(flutter团队提到的说明):

  • 在项目的 web/ 目录下的任何位置下载(或构建)CanvasKit。
  • 按照这些说明进行操作并指定 FLUTTER_WEB_CANVASKIT_URL 指向/path/to/bundled/canvaskit/(如果它位于 web/ 的根目录中,那么我认为它只是/)。
  • 在 pubspec.yaml 中包含所有必需的字体(说明

发布模式离线工作注意事项:

在发布模式下,为了使应用程序能够离线工作,使用命令发布应用程序后flutter build web,进入index.html文件,build/web然后在脚本标签中添加以下代码:

  <script>
    window.flutterConfiguration = {
    canvasKitBaseUrl: "/canvaskit/"
  };

...
Run Code Online (Sandbox Code Playgroud)