Rails资产管道 - JS和CoffeeScript

时间:2012-07-11 04:09:45

标签: ruby-on-rails asset-pipeline

我的.js文件夹中有.coffee/app/assets/javascripts/个文件。除非我调用.coffee,否则rake assets:precompile文件将无法运行,这很痛苦,因为我必须执行rake assets:clean并在我进行更改时再次预编译它们。

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

我的理解是,如果没有预编译coffeescript应该在每次请求时编译为javascript,但它似乎没有这样做。我在Firebug中找不到已编译的脚本加载,至少我没有看到它的行为。

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

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

还有什么要检查的?

我使用的是Rails 3.2.3。

1 个答案:

答案 0 :(得分:3)

  

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

     

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

     

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

如果我希望资产在生产服务器上预编译以获取新的更改,那么我通常会做的就是清理资产 - 除非你重新预编译它们

rake assets:clean

如果进行了更改,并且您不希望每次构建都预先编译它们

rake assets:clean
rake assets:precompile
相关问题