質問

それはcaches_pageで作成したキャッシュはカピストラーノ展開生き残るためのRailsを設定することは可能ですか?つまり、私はキャッシュではなく、公共のディレクトリに比べて共有ディレクトリに保存されるように設定することができますか?

役に立ちましたか?

解決

受け入れ答えはOKですが、それは展開時にすべてのものをコピーしていない一般的に、より良いのですが、ちょうどキャッシュフォルダをシンボリックリンクます。

この方法は、あなたが共有/ディレクトリにフォルダを作成して、などの展開時に、それをシンボリックリンクすることができます:

namespace :deploy do
   desc "Link cache folder to the new release"
   task :link_cache_folder, :roles => :app, :on_error => :continue do
     run "ln -s #{shared_path}/cache #{latest_release}/public/cache"  
   end
end

before "deploy:symlink", "deploy:link_cache_folder"

他のヒント

カピストラーノは本当に関連Railsのではない

、それだけで、一般的に展開するためのRailsコミュニティで使われています。だから、いいえ、あなたがやりたい「のRailsを設定」することはできません。あなたにできることは、シェルは、それが「現在」とシンボリックリンクされる前に、あなたの新しい展開にキャッシュをコピーするコマンドを実行し、あなたのCapfileにタスクを追加することです。

namespace :deploy do
   desc "Copy cache to the new release"
   task :cache_copy, :roles => :app, :on_error => :continue do
     on_rollback {
       run "rm -rf #{latest_release}/public/cache"
     }

     run "cp -a #{current_path}/public/cache #{latest_release}/public"  
   end
end

before "deploy:symlink", "deploy:cache_copy"

しかし、私は本当にあなたがキャッシュの可能性が高い、新しいコードの出力と同期しなくなりますので、キャッシュされたページのためにそのようなことをしたくないと思います。

私は、これは共有の下にシンボリックリンクパブリック/キャッシュディレクトリを持ってするのに十分であった見つけます:

set :shared_children, shared_children + ["public/cache"]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top