【发布时间】:2016-07-28 23:56:39
【问题描述】:
Embedding play as a library,我在我的项目中启用了 sbt-web 插件,并运行了web-stage,将资产逐字复制到target/web/stage/。但是使用 Play Framework 的string interpolation routing DSL 如下,当匹配请求进来时它们不会被服务:
object PlayServer extends App {
val server = NettyServer.fromRouter() {
case GET(p"/public/$file*") => {
val path = "/target/web/stage"
Assets.at(path = path, file = file)
}
}
通过播放代码handling Assets.at 进行调试,似乎没有任何东西将资产变为target/scala-2.11/classes/ 下的资源,大概是播放框架试图将它们作为资源加载。运行sbt web-stage 并没有特别注意这一点。
那么,sbt-web 管理将资产放在那里缺少什么?当手动放置在那里时,集成工作!因此,就 Play 而言,默认配置中的 sbt-web 似乎将资产放置在错误的目标子目录中......
请注意,在plugins.sbt 中,我仅包含来自 sbt-web 的以下内容,这是否足够?
addSbtPlugin("com.typesafe.sbt" % "sbt-web" % "latest.release")
【问题讨论】:
标签: playframework sbt-web