簡體   English   中英

Capistrano部署后,Carrierwave上傳的圖像不再持久

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM