ユーザーがファイルをアップロードできるサイト (browsercms)内のCMSを実行している時点で問題が発生しました。しかし、毎回私は を展開するたびにCapistranoはハードリセットを実行し、アップロードされたファイルはすべて になります。ハードリセットなしでCapistranoを使ってGitからデプロイしますか?
ハードリセットを防止する方法と、アップロードしたファイルを別の場所に移動する方法を教えてください。 アプリケーションコードを変更する必要はありませんか?
ユーザーがファイルをアップロードできるサイト (browsercms)内のCMSを実行している時点で問題が発生しました。しかし、毎回私は を展開するたびにCapistranoはハードリセットを実行し、アップロードされたファイルはすべて になります。ハードリセットなしでCapistranoを使ってGitからデプロイしますか?
ハードリセットを防止する方法と、アップロードしたファイルを別の場所に移動する方法を教えてください。 アプリケーションコードを変更する必要はありませんか?
これは正しいアプローチではない可能性があります。
.gitignoreに 'images'フォルダを含め、$ current_release/imagesフォルダを$ shared/imagesにシンボリックリンクする必要があります。あなたはdeploy.rbに入れた場合
これは、すべての展開で自動的に行うことができる。
task :link_imgs do
run "ln -s #{shared_path}/photos #{release_path}/photos"
end
after "deploy:update_code", :link_imgs
私は私のCMSと同じことをやったし、それが魅力
これは「アプリケーションコードを変更する必要なし」という条件を満たすものではありません。
しかし、私はアップロードした画像を/public/images
から/public/system/images
に移動した後に、画像が生き残るように、それぞれのカピストラの配備で「バージョン管理」されていません。
問題を引き起こすのはカピストラノ 'バージョン管理'ですか、(gitリセットの代わりに)? デプロイを呼び出す
キャップデプロイ:更新と展開:
デプロイを再起動:更新はもの
デプロイをコピーし、バージョン管理を行います過負荷、が真の再起動を行い、再起動あなたの勤務先、通常あなたのconfig/deploy.rbファイル
namespace :deploy do
desc "Softly restart the server"
task :restart, :roles => :app, :except => { :no_release => true } do
my_own.restart_recipe
end
end
はいああのように動作し、あなたはそこにいるかもしれない。アップロードディレクトリを「共有」ディレクトリにする必要があるかもしれません。 –
これは推奨されるCapistranoソリューションです。これは、デフォルトでcurrent/public/systemをshared/systemにシンボリックリンクする理由です。 Paperclipやその他のプラグインは、そのrasonのためにデフォルトでここに物を格納します。 AttachmentFu管理対象モデルでは、モデルごとに「upload_path」を変更する必要があります。 –