我创建了一个flutter web应用程序,并使用.. flutter build web --release命令完成了构建,然后将其传输到本地服务器。除非连接到Internet,否则该站点无法工作。我希望该网站在没有互联网连接的情况下工作,因为我在一个组织中工作,一些用户没有互联网权限。求你了,我想要一个解决这个问题的办法。"谢谢"
flutter build web --release
uidvcgyl1#
问题是,flutter有一些依赖项,当你作为客户端离线时无法解决。主要由canvaskit和某些google字体组成。对此有多种解决方案。最简单的是使用html web渲染器:
canvaskit
flutter build web --release --web-renderer html
对于大多数应用程序,这应该是可行的,但是它的性能比canvaskit低,尤其是对于高部件密度。因此,你也可以在本地使用canvaskit,因为它是在你构建发布版本时自动构建的。但是你必须通过在index.html中添加以下行来将它设置为基本url:
<script> window.flutterConfiguration = { canvasKitBaseUrl: "/canvaskit/" }; </script>
这样可以确保flutter应用程序使用本地源代码canvaskit。然而,另一个问题可能是google字体的使用,例如Roboto,因为这些字体通常也需要下载。但是你可以直接将这些字体显式地添加到pubspec.yaml中,就像here解释的那样。更多信息的来源:flutter web-renderersThe same issue but on githubMaking Flutter offline capable
pubspec.yaml
zzwlnbp82#
1.从Web应用程序的资产策略下载并在本地设置1.添加链接到本地Canvaskit如下:创建网页--网页渲染器=canvaskit --dart-define =抖动_WEB_CANVASKIT_URL=/canvaskit/
2条答案
按热度按时间uidvcgyl1#
问题是,flutter有一些依赖项,当你作为客户端离线时无法解决。主要由
canvaskit
和某些google字体组成。对此有多种解决方案。最简单的是使用html web渲染器:
对于大多数应用程序,这应该是可行的,但是它的性能比
canvaskit
低,尤其是对于高部件密度。因此,你也可以在本地使用
canvaskit
,因为它是在你构建发布版本时自动构建的。但是你必须通过在index.html中添加以下行来将它设置为基本url:这样可以确保flutter应用程序使用本地源代码
canvaskit
。然而,另一个问题可能是google字体的使用,例如Roboto,因为这些字体通常也需要下载。但是你可以直接将这些字体显式地添加到pubspec.yaml
中,就像here解释的那样。更多信息的来源:
flutter web-renderers
The same issue but on github
Making Flutter offline capable
zzwlnbp82#
1.从Web应用程序的资产策略下载并在本地设置
1.添加链接到本地Canvaskit如下:
创建网页--网页渲染器=canvaskit --dart-define =抖动_WEB_CANVASKIT_URL=/canvaskit/