管道资产预编译禁用似乎不起作用

时间:2014-01-22 07:41:38

标签: ruby-on-rails ruby ruby-on-rails-3 heroku

我已禁用管道资产预编译。为此,我的 config / application.rb&中包含以下行:配置/环境/ development.rb

config.assets.enabled = false

我正在尝试使用Capistrano3在开发环境中部署。当我运行deploy命令时,我发现资产是预编译的。

$ cap development deploy --trace

DEBUG [8b4a938e] Command: cd /home/ec2-user/capistrano-3/a/releases/20140122054901 && ( RAILS_ENV=development ~/.rvm/bin/rvm 2.0.0-p353 do bundle exec rake assets:precompile )
DEBUG [8b4a938e]    /home/ec2-user/.rvm/rubies/ruby-2.0.0-p353/bin/ruby /home/ec2-user/capistrano-3/ano_dev/shared/bundle/ruby/2.0.0/bin/rake assets:precompile:all RAILS_ENV=development RAILS_GROUPS=assets
DEBUG [8b4a938e]    
INFO [8b4a938e] Finished in 8.812 seconds with exit status 0 (successful).

我还需要做些什么来避免资产预编译。它进一步给出了

2 个答案:

答案 0 :(得分:25)

你的Capfile中有什么?

如果你有

require 'capistrano/rails'

然后它将预编译您的资产,因为capistrano / rails还包括bundler,rails / assets和rails / migrations。

https://github.com/capistrano/rails/blob/master/lib/capistrano/rails.rb https://github.com/capistrano/rails/blob/master/lib/capistrano/tasks/assets.rake

如果你仍然想要捆绑和迁移而不是资产,你可以将它们单独包含在你的Capfile中,只要确保你不需要'capistrano / rails':

require 'capistrano/bundler'
require 'capistrano/rails/migrations'

答案 1 :(得分:6)

就我而言,我们的团队为所有Rails应用程序使用共享gem,共享gem需要' capistrano / rails' (从而引入资产汇编)。对于没有处理此问题的应用,我们所做的只是添加:

set :assets_roles, []
<{1>}中的

,这使得capistrano-rails跳过资产预编译。