我有一個應用程序,用戶上傳圖片,並通過CarrierWave將其存儲到公用文件夾中名爲uploads/images /的文件夾中。防止刪除公共文件夾中的某個文件夾capistrano rails
我剛剛注意到,自從我最近部署以來,上傳(和圖像)文件夾不再存在。
當我用Capistrano進行部署時,是否可以刪除生產服務器上的文件夾和文件?
我該如何告訴它通過所有部署保持相同的public/uploads文件夾?
謝謝堆棧!
我有一個應用程序,用戶上傳圖片,並通過CarrierWave將其存儲到公用文件夾中名爲uploads/images /的文件夾中。防止刪除公共文件夾中的某個文件夾capistrano rails
我剛剛注意到,自從我最近部署以來,上傳(和圖像)文件夾不再存在。
當我用Capistrano進行部署時,是否可以刪除生產服務器上的文件夾和文件?
我該如何告訴它通過所有部署保持相同的public/uploads文件夾?
謝謝堆棧!
我會建議做一個capistrano任務,創建一個符號鏈接到共享文件夾。符號鏈接將作爲目錄的鏈接,因此您的所有上傳存儲/檢索代碼將正常工作。
Capistrano的任務,例如:
before "deploy:restart", :symlink_directories
task :symlink_directories do
run "ln -nfs #{shared_path}/uploads #{release_path}/public/uploads"
end
我想更新這個答案對於那些希望做同樣的Capistrano的v3.9.1
在你deploy.rb文件,你可以添加以下
set :linked_dirs, %w{public/uploads/}
就像在上面的答案中一樣,這個符號在部署期間將符號鏈接到發行版中。
理想的目錄,如上載,我們不想覆蓋的內容。
有關,你可以在「設置」變量的完整列表,請參閱capistrano docs here.
您建議通過這樣的/例子好走?我是Rails和Capistrano的新手,所以我還在學習。 – Devan
只需將上述任務放入deploy.rb並將路徑更改爲適合您的應用程序 – jvperrin
因此,我將任務放入了我的deploy.rb,但是,當我導航到當前版本的public/uploads文件夾時,它說它無法解析符號鏈接「上傳」。 我實際上沒有在我的共享文件夾中有「public/uploads」。我應該手動創建? – Devan