我想用子域创建一个像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()
答案 0 :(得分: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