如何在Firebase项目中配置两个页面myproj/a和myproj/b ?



我有两个webapps - "one_answers";viewer"-在单独的VSCode项目中编码。它们被部署到一个公共Firebase项目中,在那里它们共享一个公共数据库。"manager"Webapp用于维护数据库和"查看器"。提供公共只读访问。

创建"页面";我为每个VSCode项目在React的构建脚本中添加了一个robocopy,以生成一个结构化的"mybuild"。文件夹,其中包含页面子文件夹。重火力点。Json的"public"设置然后用于从"mybuild"部署。

单独地,这两个页面工作得很好,但是每个部署都覆盖了另一个的功能。因此,在部署& manager"之后,webapp/viewer返回404(未找到)错误,反之亦然。

长话短说,我发现解决这个问题的唯一方法是手动将一个项目的部署结果复制到"mybuild";文件夹,然后从这个文件夹部署。但这是不可能的。

我想我在什么地方拐错弯了。谁能提出正确的"firebase解决方案"?对于这个要求?从长远来看,我希望查看器web应用程序可以在一些用户友好的"苹果"的根源。虽然通过"appurl/manager"访问经理,但其他安排也可以接受。现在的主要问题是找到一种简单的方法来维持这种安排。

我需要快速解决这个问题,所以这里是我自己对我的问题的回答。

似乎当你部署一个项目时,firebase用你的firebase.json中指定的任何文件夹的内容替换你URL的当前公共文件夹。因此,我决定,无论何时部署我的任何一个项目,都必须从"组合"中部署。文件夹,包含其他项目的构建文件以及它自己的构建文件。

在这种情况下,我的"手动拷贝"似乎是正确的。方法,我现在需要做的就是自动安排。

我的每个项目现在都包含一个脚本文件,其模式如下:

npm run build
ROBOCOPY build ./composite/x /E
ROBOCOPY ../y/build ./composite/y /E
firebase deploy --only hosting

在每个脚本中,x是所有者项目,y是另一个。此外,重火力点。每个项目中的Json都被编辑为从组合中部署。

当我为一个项目运行脚本时,它首先构建一个组合文件夹,结合该项目及其合作伙伴的最新构建状态,然后部署对。

最后一个转折是告诉react构建过程,结果将从一个相对文件夹部署,因此构建也需要使用相对引用。通过添加

"homepage": "https://mywebapp/x",

到包。Json为每个项目。这里,x是项目的名称。

我不能说服自己我对这个问题的整个方法没有问题,但至少我有一个解决当前问题的方法。

最新更新