【问题标题】:how to route using subdomain in angular2?如何在angular2中使用子域进行路由?
【发布时间】:2017-04-15 22:41:15
【问题描述】:

我希望创建一个具有不同用户登录页面的 Angular 2 应用,例如“user1.example-domain.com”和“user2.example-domain.com”将具有不同且不相关的“主页”。

我的问题:

  1. 我如何使用 Angular 2 来做到这一点?
  2. 如何在本地机器上测试它? “user1.localhost:port”够了吗?

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

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

我已经在不倒翁中看到了它,我知道它可以做到。

【问题讨论】:

  • Angular app 是 SPA,Angular 路由器使用 pushState 根据路径改变 url。无论你看到了什么,你都看到了与此不同的东西。
  • 只是为了澄清,我还没有看到它在 Angular 2 中完成(不知道 tumblr 的开发方法)。我知道这个概念存在:skittenthekitten.tumblr.com 你可以看到子域对特定用户“user.tumblr.com”的使用(我不是在宣传小猫,不管他是谁 :))
  • 这假定服务器端路由。您正在尝试做的是单页应用程序的客户端路由。你不能那样做。您可以重定向到您想要的任何外部 URL,不管它是 google.com 还是另一个域上的应用程序的另一个实例,但这与路由无关。那只是重定向。而且我没有看到这种方法带来的麻烦。
  • 谢谢@estus,你是正确的,我需要服务器端路由

标签: angular subdomain angular2-routing


【解决方案1】:

这很容易做到,但不能使用 Angular(或任何其他 JavaScript 路由器)。路由到子域需要服务器提供帮助。您需要将user1user2 设置为子域,然后在您的默认文档中,根据您的规则路由到其中一个。

然后,您的 Angular 应用程序将驻留在任一地址,因此将有一个位于 http://user1.example.com/index.html 和另一个位于 http://user2.example.com。也可以是同一个应用。

对于全 Angular 解决方案,您只需将方案更改为使用 http://example.com/user1

后一种 URL 方案可能更适合您还有一个原因。如果您自托管,您可以根据自己的喜好创建子域。但是,如果您使用的是共享主机,那么您很可能会受到可以使用的子域数量的限制——可能只有两个。

【讨论】:

    猜你喜欢
    • 2016-10-19
    • 2011-01-18
    • 2015-04-23
    • 1970-01-01
    • 2016-07-27
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    相关资源
    最近更新 更多