2012-07-11 152 views
1

我在我的/app/assets/javascripts/文件夹中同时存在.js.coffee文件。 .coffee文件将不会运行,除非我打电话rake assets:precompile,这是一个痛苦,因为我必须做rake assets:clean并且每当我做出更改时再次预编译它们。Rails资产管道 - JS和CoffeeScript

另外,除了源文件之外,还包括了预编译的.js文件,这会导致双重事件处理程序和所有好东西。

我的理解是,如果没有预编译,每个请求都应该将coffeescript编译为javascript,但似乎没有这样做。我无法在Firebug中找到编译好的脚本,至少我没有看到它的行为。

/config/application.rb配置了以下行:

# Enable the asset pipeline 
config.assets.enabled = true 

还有什么检查?

我正在使用Rails 3.2.3。

回答

3

如果您在本地计算机上进行预编译,那么您可以将这些生成的资产提交到存储库并继续部署。不需要在生产机器上编译它们。

但它引入了一个问题:现在,当您更改源文件(coffescript/scss)时,应用程序将不会接受更改,因为它将提供预编译文件。耙资产:干净删除这些预编译的文件。

https://stackoverflow.com/a/9335864/643500

如果我想的资产预编译的生产服务器,以皮卡的新变化,在每一个版本是刚刚清理资产,我最常做的 - 当然一次,除非你重新预编译它们

rake assets:clean 

当更改后,你不想预编译它们每次构建做

rake assets:clean 
rake assets:precompile