我正在尝试将Flutter应用部署到GitHub Pages。应用在flutter run -d chrome
下运行良好,并使用flutter build web --release
成功构建
我将代码推送到我的存储库:https://github.com/learyjk/superpacecalcweb
部署活动日志显示部署成功。但当我单击"查看部署"按钮时,只显示一个空白页。Javascript控制台显示:
加载资源失败:服务器已响应,状态为404()https://learyjk.github.io/main.dart.js
我也试过将/index.html附加到URL的末尾,但没有成功。
有什么想法吗?错误输出不是很冗长,所以我不知道从哪里开始...
GitHub页面链接:https://learyjk.github.io/superpacecalcweb/
谢谢大家!
3条答案
按热度按时间chhqkbe11#
index.html
中有<base href=''/>
标记。将其更改为github存储库的基路径。在本例中,这将是<base href="/superpacecalcweb/"
/〉。如果没有,可以将其添加到<head>
标记中。基本上问题是flutter试图定位
main.dart.js
文件而不考虑你的部署的基本路径,因为你还没有配置正确的路径base
标签。这是常见的问题,而部署flutter web应用程序或任何web应用程序的缘故,如果托管提供商添加了一个额外的路径到主域。您可以通过以下链接看到
main.dart.js
。https://learyjk.github.io/superpacecalcweb/main.dart.js请注意,在本地测试时,您仍然需要将其设置回
href="/"
。否则,本地部署将无法工作。有一个开放的issue可以使其可配置。u5i3ibmn2#
如何自动化建议的解决方案
生成项目时,请用途:
flutter build web --release --base-href="/yourGithubRepoName/"
它会为你做所有需要的替换。
在这种情况下,命令为:
flutter build web --release --base-href="/superpacecalcweb/"
jyztefdp3#
我尝试了基本文件路径,但失败了,我的似乎是一个错误的情况下,由.js文件。不知道它是怎么发生的,但我的索引文件有flutter.js,而不是main.dart.js在html文件。当我改变了我的网站。