はあなたがPlay Framework 2のすべての私のルートにプレフィックスを追加するには?プレイ1.xでは
どのように私はプレー2.0で同様のいろいろ書いを達成することができ、すべてのルートに追加するURLを設定することができhttp.pathのPARAMを持っていましたか?
はあなたがPlay Framework 2のすべての私のルートにプレフィックスを追加するには?プレイ1.xでは
どのように私はプレー2.0で同様のいろいろ書いを達成することができ、すべてのルートに追加するURLを設定することができhttp.pathのPARAMを持っていましたか?
その後、私はGlobal.scala
finnally追加import play.api.GlobalSettings
import play.api.mvc.RequestHeader
import play.api.mvc.Handler
object Global extends GlobalSettings {
override def onRouteRequest(request: RequestHeader): Option[Handler] = {
super.onRouteRequest(PrefixedRequest(request))
}
}
でそれを使用し、私はこの
import play.api.mvc.RequestHeader
import play.api.Play.configuration
import play.api.Play.current
class PrefixedRequest(request: RequestHeader) extends RequestHeader {
def headers = request.headers
def queryString = request.queryString
// strip first part of path and uri if it matches http.path config
def path = ("^" + prefix).r.replaceFirstIn(request.path, "/")
def uri = ("^" + prefix).r.replaceFirstIn(request.uri, "/")
def method = request.method
def remoteAddress = request.remoteAddress
lazy val prefix = {
val config = configuration.getString("http.path").getOrElse("")
if (config.endsWith("/")) config else config + "/"
}
}
object PrefixedRequest {
def apply(request: RequestHeader) = new PrefixedRequest(request)
}
ようPrefixedRequestを作成し、私はplay's discussion groupで尋ねたと彼らは私がこの最初のバージョン
を達成役立ちましたthis to application.conf
http.path=/prefix/
それはうまくいくようですが、その接頭辞を逆のルートに追加する方法を見つけることはできません。誰でもその部分を手に入れることができますか?
application.context="/your/prefix"
プレイから: -
このthreadとあなたがconf/application.conf
で、次のオプションを使用していることを行うことができますプレイ2.1ではdocs
明らかに、これらの機能はバージョン2.1より前には含まれていません - https://github.com/playframework/Play20/commit/da6bbc4 – opensas
これはi18n(/ fr、/ en ...)のためには素晴らしいかもしれません – iwalktheline
Iあなたがより良くなると思うhttp://www.playframework.org/documentation/api/2.0/scala/play/api/mvc/WrappedRequest.html – Drew