我编译的咖啡脚本js文件在哪里?

时间:2016-07-12 11:34:39

标签: scala playframework coffeescript

我有一个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

1 个答案:

答案 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 cleanactivator clean)。