1

我想用子域创建一个像 stackexchange 这样的网络。

例如

subdomain1.test.com
subdomain2.test.com
subdomain3.test.com
subdomain4.test.com

我还希望在一个应用程序中拥有所有网站,这样我就可以更轻松地扩展和服务它们。

我如何在 play2 中做到这一点?

我可以指定一个子域routes吗?

伪代码

GET     subdomain1/                           controllers.Application.index()
GET     subdomain2/                           controllers.Application.index()
4

1 回答 1

2

它不起作用:如果router包含两个具有相同类型和目标操作的路由,它将仅首先使用。对于最快的解决方案,您可以只创建一个包装方法,它将执行您需要的操作并在视图/控制器级别使用它们:

route

GET   /home    controllers.Application.index

Application controller

public static String linkMeta(play.api.mvc.Call path) {
    return "http://meta.domain.tld" + path;
}

模板样本:

<a href='@Application.linkMeta(routes.Application.index)'>Absoulte URL link to meta's index</a>
URL: http://meta.domain.tld/home

<a href='@routes.Application.index'>Relative URL to meta's index</a>
URL: /home
于 2012-08-21T17:26:03.793 回答