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

Posted

技术标签:

【中文标题】Flutter web:无法加载资源:net :: ERR_NAME_NOT_RESOLVED【英文标题】:Flutter web : Failed to load resource: net::ERR_NAME_NOT_RESOLVED 【发布时间】:2021-06-05 02:33:30 【问题描述】:

Flutter web 只是在 chrome 中显示 empty 白页,我通过使用 inpect 在 chrome 的 console 中得到 Failed to load resource: net::ERR_NAME_NOT_RESOLVED。即使在 web 上使用 flutter counter 应用程序也可以重现.

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

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

ipconfig /flushdns
ipconfig /renew
ipconfig /registerdns

【问题讨论】:

请edit您的问题添加minimal reproducible example。 没有错误所以我不能添加任何可重现的代码。 net::ERR_NAME_NOT_RESOLVED 是 DNS 错误。如果您向我们展示您的代码,也许我们可以帮助您弄清楚发生了什么。 我添加了一些代码。 什么是基本 URL? 【参考方案1】:

如果你连接到互联网,它会工作并且不会发生错误但是这个错误发生在最新版本(2.0.2)的离线模式下,因为CanvasKit没有自动捆绑离线开发。所以flutterteam提到了这些说明:

使其离线工作:

在 web/ 目录下的任意位置下载(或构建)CanvasKit 你的项目。 关注these instructions 并指定 FLUTTER_WEB_CANVASKIT_URL 到 指向/path/to/bundled/canvaskit/(如果它位于 web/ 的根目录中 那么我认为它只是/)。 在您的 pubspec.yaml (instructions) 中包含所有必要的字体

【讨论】:

【参考方案2】:

我在不是从我的网络服务器的根目录提供应用程序时遇到了这个问题。 我必须在 web/index.html 中指定 <base> 标记,然后它对我有用。

【讨论】:

<base href="/"> in index.html 已经存在。【参考方案3】:

这是它的 Makefile

webrun:
    wasmLocation="$(shell grep canvaskit-wasm build/web/main.dart.js | sed -e 's/.*https/https/' | sed -e 's/\/bin.*/\/bin/' | uniq)"; \
    curl -o ./web/canvaskit.js "$$wasmLocation/canvaskit.js"; \
    curl -o ./web/canvaskit.wasm "$$wasmLocation/canvaskit.wasm"; \
    flutter run -d chrome --release --web-renderer=canvaskit --dart-define=FLUTTER_WEB_CANVASKIT_URL=./

【讨论】:

以上是关于Flutter web:无法加载资源:net :: ERR_NAME_NOT_RESOLVED的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 开发的应用程序在手机上无法加载网络图片资源

Flutter web 无法从包中加载资产

Flutter for Web 中的 WebView 未加载 Google 地图或其他

ASP.NET MVC 页面无法加载并显示“找不到资源”

Rails 图像消失并出现错误:无法加载资源:net::ERR_CONTENT_LENGTH_MISMATCH

无法加载资源:net::ERR_CONNECTION_RESET 与 Apache 2.4 和 Chrome