我的.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。
答案 0 :(得分:3)
如果您在本地计算机上进行预编译,则可以将这些生成的资产提交到存储库中并继续部署。无需在生产机器上编译它们。
但它引入了一个问题:现在当您更改源文件(coffescript / scss)时,应用程序将不会接收更改,因为它将提供预编译文件。 rake assets:clean删除这些预编译文件。
如果我希望资产在生产服务器上预编译以获取新的更改,那么我通常会做的就是清理资产 - 除非你重新预编译它们
rake assets:clean
如果进行了更改,并且您不希望每次构建都预先编译它们
rake assets:clean
rake assets:precompile