我使用sbt-js
https://github.com/untyped/sbt-plugins/tree/develop/sbt-js
生成我所有javascript文件的压缩连接
sbt-js生成的压缩文件最终出现在* resource_managed *目录
中(目标/ scala2.10 / resource_managed /主/ all.js)
现在我需要让Play来提供这个文件,似乎我需要创建一个 它的路线,但无法弄清楚哪一个,我尝试过这个变种:
GET /assets/all.js controllers.Assets.at(path="/resource_managed/main", file="all.js")
没有成功。
答案 0 :(得分:0)
resource_managed / main的(已知)内容放在类路径的根目录中,所以如果你正在做什么就行,那就是Assets.at(path =“/”,file =“all.js”)< / p>
坏消息是,resource_managed是为播放资产编译器生成的文件保留的,那些实际返回的是每个输出的文件,以便play / sbt知道该文件。因此,要使其工作,您需要将sbt-js-compilation设置为资产编译器,并将其包含在播放资产编译器中。
好消息是,有一种非托管资源的概念可以是你想要的任何东西。要使用它,您需要在SBT配置中设置键unmanagedResourceDirectories
,例如:
val myCompiledJsDir = SettingsKey[File]("js-output-dir", "Where my js is compiled to")
val myJsSettings = Seq(
myCompiledJsDir <= target(_ / "my-js-output"),
(unmanagedResourceDirectories in Compile) <+= myCompiledJsDir
)
然后将myJsSettings附加到您的游戏项目
val main = play.Project(appName, appVersion, Dependencies.all).settings(
...
).settings(myJsSettings: _*)
这应该可以让你的编译js很好,你添加的目录将被添加到类路径根目录,并将打包到play dist zip文件等。