如何在Play Framework 2.1(Scala)中从相同的代码库中提供多个域

时间:2013-03-19 02:21:05

标签: playframework playframework-2.0 playframework-2.1

在Play Framework 2.1下使用Scala我想使用相同的代码库和数据库为多个域提供服务。对于Scala下的最新版本,无法找到任何内容。

我正在构建一个类似Magento的多站点CMS,需要能够检测域/主机名,并根据所请求的域从数据库中提取不同的条目。

如何检测Scala中正在请求的域,以便我可以提供正确的内容?

我认为Global.scala中的这样的东西可以起作用:

import play.api._

object Global extends GlobalSettings {

  override def onStart(app: Application) {
    //detect domain host here
    //set global variable for which domain to use when interacting with the DB
  }

}

或者这是否需要在路线文件中处理?

1 个答案:

答案 0 :(得分:1)

您可以使用play.api.mvc.Call.absoluteURL方法检索控制器的完整网址。

例如:

val url = controllers.routes.Index.view().absoluteURL()

此调用的范围内需要隐式RequestHeader。我认为全局检测URL的最佳解决方案是使用filter API