![](/img/trans.png)
[英]RoutingError for previous uploaded images after Capistrano deploy
[英]Carrierwave uploaded Images aren't persistent after Capistrano deploy
我剛剛注意到,在我將我的Rails應用重新部署到具有cap deploy:migrations
生產之后, cap deploy:migrations
了我通過管理表單上傳的任何圖像(例如,使用頭像圖像創建推薦),這些圖像鏈接現在已斷開。 只要不重新部署任何代碼,圖像就可以正常顯示,這是不希望的,因為我經常更改代碼。 我認為這與capistrano為每個部署在“版本”中創建文件結構的方式有關,但是我不確定如何解決此問題。
我也不用git跟蹤public/uploads
,因為我不希望在本地主機上使用的虛假內容出現在生產環境中。
因此,在我進行最新代碼推送之前,自從我添加所有圖像以來,我就已經擁有了所有圖像。 現在,在推送之后沒有圖像:
以下是我認為相關的文件(讓我知道是否需要查看這些文件之外的文件):
avatar_uploader.rb:
class AvatarUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
process :resize_to_fit => [200, 200]
def extension_white_list
%w(jpg jpeg gif png)
end
end
默認情況下,Capistrano鏈接public/system
目錄。 因此,要保留您的圖像,只需進行更改
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
至
def store_dir
"system/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
似乎您沒有在deploy.rb中配置linked_dirs
變量(在Capistrano 3的情況下),或者未從shared/public/uploads
中指定到public/uploads
的符號鏈接(在Capistrano 2的情況下)。
沒有它,所有deploy都將“覆蓋” public/uploads
目錄。
這是更多細節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.