個人的には、こうした種類のものを処理する最善の方法は、共有フォルダにそれらを保存し、共有アセットへのシンボリックリンクを作成するためにcapistranoでタスクを作成することです。
ここでは私のプロジェクトの一つの例です:も動作し、実際にあなたのdeploy.rb内だけでワンライナーですshared_childrenためにあなたのパスを追加
set :shared_assets, %w{public/images/products public/images/barcodes}
namespace :assets do
namespace :symlinks do
desc "Setup application symlinks for shared assets"
task :setup, :roles => [:app, :web] do
shared_assets.each { |link| run "mkdir -p #{shared_path}/#{link}" }
end
desc "Link assets for current deploy to the shared location"
task :update, :roles => [:app, :web] do
shared_assets.each { |link| run "ln -nfs #{shared_path}/#{link} #{release_path}/#{link}" }
end
end
end
before "deploy:setup" do
assets.symlinks.setup
end
before "deploy:symlink" do
assets.symlinks.update
end
私は理解していますが...共有されたディレクトリはカピストラノのものですが、Railsはそれについて私が知る限り知りません。では、アプリケーションの外にあるディレクトリにファイルを保存するようにレールに指示する方法と、ローカルコピーにイベントが存在しない場合はどうすればよいですか? – emzero
Railsでは何も変更しません。それがこの戦術のポイントです。 Railsはまだ画像を "RAILS_ROOT/public/images/avatars"などに保存しますが、そのフォルダは実際にはカプリストラノの "共有"フォルダ内のフォルダへの[symlink](http://en.wikipedia.org/wiki/Symbolic_link)フォルダ。 – idlefingers
ああ、そうだね...私はそれを見なかった。ありがとう! =) – emzero