如何使用来自另一个 firebase 站点的域为 firebase 站点提供服务?

How do I serve a firebase site using the domain from another firebase site?

我有一个域为 gs-domain1.web.app 的 Firebase 站点。 我有第二个 firebase 站点,域为 gs-domain1.web.app.

现在,我希望所有流量都经过 gs-domain1.web.app。但是,当路径匹配特定路由时,例如 /users/:id/pages,我希望 gs-domain2.web.app 上的站点接管而不切换域,但保持路径。

我认为重定向不会起作用,因为它会物理切换域。 我相信重写不会起作用,因为我无法在目的地重新创建路径。

domain1和domain2上的应用都是单页应用(分别是react和vue)

我不确定您所说的“接管而不切换域,但保持路径”是什么意思。如果你的意思是你希望用户现在在这个特定路径上看到 gs-domain1.web.app 上的页面,但在他们的浏览器中仍然有 gs-domain1.web.app 作为 url 中的域,我只能真的想到了两个好办法。

  1. 您使用 iFrame 将来自 gs-domain2.web.app 的页面显示为特定路径上 gs-domain1.web.app 页面的全部内容。如果第二页很复杂,这可能会导致奇怪。

  2. 你摆脱了第二个域,而是将该代码库移到第一个域,并编写一些中间件,当用户请求应该来自 [= 的路径时,从第一个代码库提供服务10=] 当前并在用户请求当前应该来自 gs-domain2.web.app 的路径时从第二个代码库提供服务。如果这是您想要的行为,我认为这将是更 'correct' 的方法。

或者,如果您不关心用户看到的域是什么,我建议,正如您提到的,仅设置一些巧妙的重定向,根据用户请求的路径在两者之间跳转。

希望对您有所帮助,祝您好运!

在 firebase 中,您可以在一个项目中托管多个站点,这将解决您的问题。

Host/Deploy 对 firebase 的反应代码和 link 具有 gs-domain2.web.app 的 URL 的站点 和 在与反应相同的项目中做另一个托管,但在 gs-domain2.web.app

上进行 vue

在您成功 link 编辑域并托管网站后... Link URL 或任何您喜欢的人。

优点:您的网站将单独加载并且会更快。

此外,

如果把所有的代码都放在一个域下就好了

然后您可以为这 2 个站点使用不同的路径,以便轻松识别它们。 所以你有:gs-domain1.web.app/path1gs-domain1.web.app/path2

您会在下面的托管部分底部找到添加另一个站点的功能 1