我目前正在开发一个项目,我需要在静态登录页面旁边托管一个 Flutter Web 应用程序,两者都使用 Firebase 托管在同一域下。我的目标结构如下:
着陆页应从
mysite.com/index.html
提供。
Flutter Web 应用程序应该可以通过 mysite.com/game/index.html
访问。
我在配置 Firebase 托管以支持此结构时遇到困难。具体来说,我在两个方面寻求帮助:
目录结构:我应该如何组织 Flutter 项目中的目录结构以正确容纳静态登陆页面和 Flutter Web 应用程序?
Firebase 托管配置:如何配置 firebase.json 文件以正确处理此设置的 URL 重写?我希望确保:
导航至
mysite.com
即可进入登陆页面。
导航到 mysite.com/game
可提供 Flutter Web 应用程序。
如果有人有类似设置的经验或者可以提供适用于此场景的 firebase.json 配置示例,我将非常感谢您的意见。此外,了解在这种情况下组织项目目录的最佳实践也将是有益的。
{
"hosting": {
"source": ".",
"headers": [
{
"source": "**/*.@(eot|otf|ttf|ttc|woff|font.css)",
"headers": [
{
"key": "Access-Control-Allow-Origin",
"value": "*"
}
]
}
],
"rewrites": [
{
"source": "/game/**",
"destination": "/game/index.html"
},
{
"source": "**",
"destination": "/index.html"
}
],
}
Firebase 托管不需要为此进行任何特定配置。
只需将 Flutter 构建的输出移动(或直接)到 Firebase 项目目录下的
game
子目录中,然后运行 firebase deploy
。