【问题标题】:CoffeeScript is not compiled in Play 2.1.0CoffeeScript 未在 Play 2.1.0 中编译
【发布时间】:2013-02-11 21:01:03
【问题描述】:
我正在 Play 2.1.0 中尝试使用 CoffeeScript 的第一步。我创建了一个新应用程序并将我的 CoffeeScript 文件 main.coffee 放在 app/assets/javascripts/ 中。
我希望在启动播放应用程序时(在播放控制台中输入“运行”),我的 CoffeeScript 将被编译并将生成的 main.js 放置在 public/javascripts 目录中。
但没有在该目录中创建 main.js。我是否必须在其他地方添加一些配置?
【问题讨论】:
标签:
coffeescript
playframework-2.1
【解决方案1】:
如CoffeeScript doc中所述:
请注意,托管资源不会直接复制到应用程序的公共文件夹中,而是保存在 target/scala-2.x.x/resources_managed 的单独文件夹中。
你必须通过Assets控制器使用反向路由来访问它:
<script src="@routes.Assets.at("javascripts/main.js")">
【解决方案2】:
正如documentation 所描述的:CoffeeScript sources are compiled automatically during an assets command, or when you refresh any page in your browser while you are running in development mode.
所以,如果你不在development mode,你应该使用assets命令手动编译你的CoffeeScript。
在输入assets 命令之前,请确保您已在您的项目中添加sbt-coffeescript 插件,方法是在您的project/plugins.sbt 文件中添加以下行:
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
通过添加上一行启用 CoffeeScript 编译后,进入项目的根目录并输入 sbt 命令。在 sbt 交互 shell 中,您可以输入 assets 命令,您将得到如下输出:
$ assets
[info] CoffeeScript compiling on 1 source(s)
[success] Total time: 4 s, completed May 30, 2015 9:43:29 PM
如您所见,CoffeeScript 编译成功。