ユーザーが Amazon S3 に写真をアップロードできるようにする Rails 3.1 アプリがあります。cap deploy
本番環境で S3 を使用しているため、プリコンパイル済みのアセット (application.js & application.css & images) を S3 バケットに自動的に (on で) アップロードし、そこで提供したいと考えています。十分に単純です。
設定を超えて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