在我的flutter网络应用程序中,我使用Beamer软件包来导航路线。
当在chrome上测试应用程序时,一切都运行正常。
在将我的应用程序部署到Firebase后,将路线链接粘贴到搜索栏中不起作用。
更准确的问题描述:
访问已部署网站的"/"路径可以正常工作,重新加载也可以正常工作。加载通过Beamer. of(context). beamToNamed(foo)路由到的屏幕可以正常工作。但是复制一个(通过beamToNamed成功加载的)路径的链接并将其粘贴到浏览器的另一个选项卡中会导致我进入firebase的默认404错误页面。重新加载一个成功加载的页面会导致我进入相同的404 firebase页面。
我不知道这个错误是怎么发生的。也许firebase在索引我的路由时出错了,这就是为什么beamtonamed可以工作,但直接访问路由就不行了?
我很感激你的帮助。
我试过重建,重新部署,没有效果。我试过不同的版本:
Flutter 3.3.10 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 135454af32 (9 days ago) • 2022-12-15 07:36:55 -0800
Engine • revision 3316dd8728
Tools • Dart 2.18.6 • DevTools 2.15.
Flutter 3.3.8 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 52b3dc25f6 (7 weeks ago) • 2022-11-09 12:09:26 +0800
Engine • revision 857bd6b74c
Tools • Dart 2.18.4 • DevTools 2.15.0
在这两个flutter版本中,通过chrome进行的本地测试工作在调试、配置文件和发布模式下。
1条答案
按热度按时间p8h8hvxi1#
想明白了。
在flutter项目中初始化firebase的时候,我选择了多页面网站,我查阅了firebase的文档,上面说把你的web应用托管到firebase上,你必须选择单页面网站。
因此,我编辑了firebase.json文件以解决重写问题(通常通过选择单页来完成),它工作正常。