在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
}
}
或者这是否需要在路线文件中处理?
答案 0 :(得分:1)
您可以使用play.api.mvc.Call.absoluteURL
方法检索控制器的完整网址。
例如:
val url = controllers.routes.Index.view().absoluteURL()
此调用的范围内需要隐式RequestHeader。我认为全局检测URL的最佳解决方案是使用filter API。