【问题标题】:Use two domains with one angular app通过一个 Angular 应用程序使用两个域
【发布时间】:2018-11-14 16:04:33
【问题描述】:

我们正在将我们的应用迁移到其他域。 在此过程中,我们将有一段时间,其中一些应用程序将在域 A 上,而应用程序的其他部分将在域 B 上。

我试图让一个 Angular 应用处理两个不同的域。

例如

www.myapp.com --> 由模块 A 处理

www.myotherapp.com --> 由模块 B 处理

是否有可能在 Angular 路由器中实现类似的功能?

如果没有,您将如何处理? (也许在 Angular 之外,在基础设施级别?)

【问题讨论】:

  • 应该可以将 url 定位到 Angular 应用程序中的特定路由。例如。 www.myapp.com 以 www.yourhost.com/ (您的 Angular 应用程序的根目录)为目标,而 www.myotherapp.com 以 www.yourhost.com/#/myroute 为目标(如果您使用哈希定位策略)。在每种情况下都会加载根模块,但您应该能够指向不同的功能模块。
  • 你可以按照 ngfelixl 说的做。如果您使用 angular-cli,您还可以在单​​个项目中托管两个专用应用程序 see here

标签: angular virtualhost angular-router


【解决方案1】:

不要那样做。

我会首先将新应用所需的所有内容提取到库中。之后,您可以为每个域构建两个不同的应用程序,将提取的内容用作共享库。

如果提取/重构做得好,应用程序将只是用实际代码包裹库的薄层。

对我来说,这比尝试将两个不同的应用程序打包到一个中要干净得多。

不要忘记,如果您将两个应用程序合二为一,浏览器将下载所有不需要的代码。

---- 更新----

感谢您的澄清。您仍在谈论两个不同的应用程序。您当前的应用程序 (A) 和您将要开发的新应用程序 (B)。您还需要在开发过程中使用混合解决方案 (A/B)。

在时间线上:A --> A/B --> B。

当您处于 A/B 阶段时,您希望在一个域上运行 A-Part,而在另一个域上运行 B-Part。通常,B 开发只使用不同的 Git 分支,而不会尝试人为地保留 B 不需要的 App-A 代码。这样,您可以将每个分支部署在不同的域上。

优点:

  • 您不必管理临时混合解决方案
  • 您可以专注于 B 在自己的分支上一块一块地开发
  • 您有一个干净的 App-A 分支,用于修复 A 上的错误
  • 关注点分离总是一件好事 :)

【讨论】:

  • 最终我们的目标是 1 个应用程序。不需要的内容应该不是问题,因为我们正在根据当前路由进行延迟加载。对我来说,你的建议听起来比我最初想的更复杂。
  • 你最终选择了什么解决方案? @迈克尔
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 2023-03-29
  • 2017-10-13
  • 2017-10-27
  • 1970-01-01
相关资源
最近更新 更多