2016-12-01 39 views
6

我正在寻找用不同的用户登录页面创建一个Angular 2应用程序,例如'user1.example-domain.com'和'user2.example-domain.com'将会有不同和无关的'主页'。如何在angular2中使用子域进行路由?

我的问题:

  1. 它采用了棱角分明2怎么能怎么办?
  2. 如何在本地机器上测试它?是“user1.localhost:port”够了吗?

我使用静态路由,像这样尝试:

{path: 'test.localhost:4200/generic-link1', component: GenericLink1Component} 

我已经看到了它的不倒翁做我知道,这是可以做到。

+1

[Html5 History Api - pushState from a domain to subdomain]可能的副本(http://stackoverflow.com/questions/14807921/html5-history-api-pushstate-from-a-domain-toa-a-子域名) – estus

+0

Angular app是SPA,Angular路由器使用pushState根据路径更改网址。无论你看到什么,你都看到了与此不同的东西。 – estus

+0

只是为了澄清,我没有看到它在角度2(不知道tumblr的开发方法)中完成。我知道这个概念存在:http://skittenthekitten.tumblr.com/你可以看到特定用户“user.tumblr.com”的子域名的使用(我没有宣传他是谁:)) – Hahn

回答

3

这可以很容易地完成,但不能与Angular(或任何其他JavaScript路由器)。路由到子域需要服务器帮忙。您需要将user1user2设置为子域,然后将其设置为默认文档,然后根据您的规则进行路由。

您的角度应用程序将驻留在任一地址,因此将有一个在http://user1.example.com/index.html和另一个在http://user2.example.com。它也可能是同一个应用程序。

对于全角度解决方案,您应该简单地将您的方案更改为使用http://example.com/user1

还有一个原因,为什么后面的URL方案可能会更好。如果您自主托管,则可以为您的内容创建子域。但是,如果您使用的是共享主机,则很可能会限制您可以使用的子域数量 - 可能只有两个。