デフォルトでは、Scalatra は「webapp」ディレクトリが にあると想定していますsrc/main/webapp
。それをどのように変更できcontent/doc-root
ますか?
sbt では、次のようなものを使用してデフォルト ディレクトリをカスタマイズできます。
scalaSource <<= (baseDirectory)(_ / "src")
したがって、使用する正しい「構成キー」を知っているだけの問題だと思います...
デフォルトでは、Scalatra は「webapp」ディレクトリが にあると想定していますsrc/main/webapp
。それをどのように変更できcontent/doc-root
ますか?
sbt では、次のようなものを使用してデフォルト ディレクトリをカスタマイズできます。
scalaSource <<= (baseDirectory)(_ / "src")
したがって、使用する正しい「構成キー」を知っているだけの問題だと思います...
xsbt-web-plugin の新しいバージョン (執筆時点で 1.0.0) では、ソース パスの変更方法が異なります。
まず、対応する設定を に移動しましたXwpPlugin.webappSettings
。そして、あなたはこれらの2つを必要とします
webappSrc in webapp <<= (baseDirectory in Compile) map { _ / "content" / "doc-root" },
webappDest in webapp <<= (baseDirectory in Compile) map { _ / "content" / "doc-root" },
sbt の設定を変更したくない場合は、serveStaticResource をオーバーライドして forward を使用することにより、プログラムで変更することもできます。
override protected def serveStaticResource(): Option[Any] = {
// check to see if we need to alter the path to find the TRUE disk url
val incUrl = request.getRequestURI
if(incUrl.startsWith("/otherDir")) {
servletContext.resource(request) map { _ =>
servletContext.getNamedDispatcher("default").forward(request, response)
}
} else {
val trueUrl = "/otherdir" + incUrl
Option(servletContext.getRequestDispatcher(trueUrl).forward(request, response))
}
}
免責事項: 無限ループに入らないことも確認する必要があります。