【发布时间】:2012-10-16 16:42:50
【问题描述】:
只有在 Rails 资产发生变化时才使用 deploy.rb 预编译它们,这个任务总是跳过我的资产的编译:(
namespace :assets do
task :precompile, :roles => :web, :except => {:no_release => true} do
from = source.next_revision(current_revision)
if capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets/ app/assets/ | wc -l").to_i > 0
run %Q{cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} #{asset_env} assets:precompile}
else
logger.info "Skipping asset pre-compilation because there were no asset changes"
end
end
end
什么可能导致这个完整的任务无法编译?它始终认为没有资产更改并抛出该消息。
我也从来没有真正理解过这个任务,例如下面的 source.log.local 指的是什么?
source.local.log
谁能阐明任务命令的作用并指出为什么它从未看到任何资产更改?谢谢
【问题讨论】:
标签: ruby-on-rails-3 deployment capistrano asset-pipeline precompile