我有一个2.5.x的应用程序,我在以下文件夹中创建了该文件:
/app/assets/javascript/test.coffee
在我的master.scala.html中,我有:
<script src="@routes.Assets.versioned("javascripts/test.js")" type="text/javascript"></script>
我的plugins.sbt有:
// web plugins
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.3")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")
addSbtPlugin("org.irundaia.sbt" % "sbt-sassify" % "1.4.2")
当我运行应用程序时,它不会在我的/public/javascript/test.js
文件夹中创建文件。
尝试导航到该文件是找不到文件错误:
http://localhost:9000/assets/javascripts/test.js
我的路线有:
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
这应该如何运作,因为我以前从未使用过这个?
参考: https://www.playframework.com/documentation/2.5.x/AssetsCoffeeScript
答案 0 :(得分:1)
test.coffee
文件放在/app/assets/javascripts/
文件夹中 - 在javascript s 结尾处有一个 s
。
然后它应该工作。
此外,您应该知道已编译的test.js
文件将不放入/public/javascript/
文件夹中。相反,play会将target
文件夹用于所有已编译的代码(*.class
文件,已编译的资产(如*.coffee
文件等)。在您的特定情况下,已编译的JavaScript文件将放在target/web/public/main/javascripts/
中,其中播放将在将文件提供给客户端时将其拾取。只需查看target
文件夹,即可了解Play如何组织编译资源。提示:如果某些东西不起作用,不编译等你认为它应该有时可能只是删除target
文件夹以开始“新鲜”。 (或者只使用sbt clean
或activator clean
)。