2016-04-07 15 views
0

Embedding play as a library、私は自分のプロジェクトでsbt-webプラグインを有効にしてを実行して、アセットをtarget/web/stage/にそのままコピーしました。しかし、再生使用Frameworkのstring interpolation routing DSL次のように、それらが一致した要求が入ってきたときに提供されていません。遊びコードhandling Assets.atプレイフレームワークなしのPlay Framework sbt-web統合

object PlayServer extends App { 
    val server = NettyServer.fromRouter() { 
     case GET(p"/public/$file*") => { 
     val path = "/target/web/stage" 
     Assets.at(path = path, file = file) 
    } 
} 

デバッグが、それは何もないように見える

target/scala-2.11/classes/下にあるリソースへの資産をもたらし、どこおそらくフレームワークを再生からリソースとしてそれらをロードしようとしています。 sbt web-stageを実行していても、それは特に気にしません。

資産をそこに置くことを管理するsbt-webの管理に欠けているものは何ですか?手動でそこに配置されたとき、統合が動作します!だから、デフォルト設定のsbt-webは、プレイが関係する限り、間違ったターゲットサブディレクトリに資産を配置するようです...

plugins.sbt私はsbt-webから次のものだけを含めます。 ? /src/main/resources/assets/の下で資産を置く

addSbtPlugin("com.typesafe.sbt" % "sbt-web" % "latest.release") 

答えて

0

は、彼らがどんな空想SBT-ウェブ処理をバイパスし、実行している時にtargetにコピーされます。これは基本的な開発のための泥のあなたを取得します。したがって、これは本当に答えではないが、それは特定の使用を解決し、縮小または何でも最終的に回避することができないため、適切なSBT-ウェブパイプラインを設定

case GET(p"/public/$file*") => { 
    val path = "/assets" 
    Assets.at(path = path, file = file) 
} 

ルートはそうのように適応する必要があります内部で使用されるアプリケーションの再生を使用するケース。