ローカルで capistrano を使用してアセットをプリコンパイルし、これらのアセットを rsync でアップロードした後、次のコードをオンにします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_locally("rm -rf public/assets/*")
run_locally "bundle exec rake assets:precompile"
find_servers_for_task(current_task).each do |server|
#clean server assets before upload local new assets
run_locally "rsync -vr --exclude='.DS_Store' --recursive --times --rsh=ssh --compress --human-readable --progress public/assets #{user}@#{server.host}:#{shared_path}/"
end
else
puts "Skipping asset pre-compilation because there were no asset changes"
end
end
end
問題は、展開するたびにフォルダー#{shared_path}/assets
が急速に大きくなることです。
rm -rf public/assets/*
ローカルの新しいアセットをオンラインでアップロードする前に、本番サーバーでコードを実行する必要があります#clean server assets before upload local new assets
どうすればいいですか?