Angular.js – 我需要devise2个应用程序还是只有一个?

我用Nginx定义了两个虚拟服务器来处理

营销的东西和用户authentication主域名www.example.com和

一旦用户被authentication,子域admin.example.com上的pipe理员应用程序

server { listen 8080; server_name example.com; root html; location / { index index.html index.htm; } server { listen 8080; server_name admin.example.local; root html/admin; location / { index index.html index.htm; } } 

我想用一个Angular.js单页应用程序来处理营销内容,而用一个Angular.js多页面应用程序来pipe理这些pipe理员的东西。

可能吗 ? 我应该只devise2个应用程序还是1个ap?

我不认为你应该分割它们,因为它们可能需要很多相同的function/数据。 认为DRYdevise 。

您不希望为一个项目维护两个代码库,或者每次API发生更改时都必须修补两次。

仔细查看$ route文档,并相应地规划您的实施:您可以为pipe理员设置一个独立的path,而无需重复任何操作。 此外,即使在同一个域名中,您也可能遇到一些奇怪的XHR问题,您必须专门为其编写代码。

总之,这是我的答案:不要分裂它。 如果您绝对想要拥有admin.domain.com ,只需从您的DNSredirect到domain.com/admin并在单个代码库中处理即可。 在这条线上,您可以稍微重构您的代码,以匹配您想要的确切行为。 看看这里的一些灵感: 通过AngularJS的子域进行dynamic路由

你可以得到与模块分开的代码。

理想情况下,你应该如何让它分成三个项目:

  1. 一个通用的模块 – 没有索引与ng-app或angular.bootstrap。 它是共享的图书馆。
  2. 一个应用程序模块包含一个带有ng-app和bootstrap模块的index.html
  3. 一个pipe理模块包含另一个引导程序模块的另一个index.html文件

然后你build立了2个构build:

  1. 应用程序构build:合并1和2
  2. pipe理员构build:merginig 1&3

但是这样做可能相当困难。 所以,如果你不能真正做到这一点,那么你也可以将pipe理员中的应用程序模块合并为pipe理员构build。 这不应该是一个问题。