У нас есть приложение Rails 3.1, которое позволяет пользователям загружать фотографии в Amazon S3.Поскольку мы используем S3 в производстве, я хотел бы автоматически (на cap deploy
) также загружать предварительно скомпилированные ресурсы (application.js & application.css & images) в нашу корзину S3, где они будут обслуживаться.Достаточно просто.
За пределами настройки config.action_controller.asset_host = "http://assets.example.com"
Короче говоря, Я ищу несколько примеров рабочего "рецепта" для Capistrano, чтобы сделать это , но может 'Похоже, что нет никаких современных (совместимых с конвейером активов 3.1).Мы успешно прекомпилируем активы, но как перенести их на S3? И, в идеале, только те, которые изменились?
"Мясо" текущего "рецепта":
...
after "deploy:update_code", "deploy:pipeline_precompile"
before "deploy:finalize_update", "deploy:copy_database_config"
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
end
# copy database.yml into project
task :copy_database_config do
production_db_config = "/path_to_config/#{application}.yml"
run "cp #{production_db_config} #{current_release}/config/database.yml"
`puts "replaced database.yml with live copy"`
end
task :pipeline_precompile do
run "cd #{release_path}; RAILS_ENV=production bundle exec rake assets:precompile"
end
end