2015-06-08 1 views
1

Изображения, которые я загружаю в свое приложение rails с picture_uploader.rb исчезают после каждого нового «развертывания крышки».Как установить «stor_dir» CarrierWave на место сервера, которое будет сохраняться после повторного запуска «cap deploy»?

# picture_uploader.rb 

class PictureUploader < CarrierWave::Uploader::Base 
    include CarrierWave::MiniMagick 
    process resize_to_limit: [500, 500] 

    storage :file 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{Rails.env}/#{model.id}" 
    end 

    def extension_white_list 
    %w(jpg jpeg gif png) 
    end 
end 

Capistrano развертывает мое приложение:

/вар/WWW/myapp_app/

поэтому место физической памяти в результате указанной выше конфигурации:

/var/www/myapp_app/releases/20150608000412/uploads/micropost/production/338/example_photo.jpg

и путь изображения отображаются в веб-браузере становится:

https://example.com/uploads/micropost/production/338/example_photo.jpg

Загруженные изображения появляются на работу в первый, но затем исчезают в следующий раз, когда я бегу «Колпачок развернуть».

Заранее благодарим за любую помощь.

ответ

1

Я понял. Проблема была в config/deploy/production.rb. Мне нужно добавить «общественные/загрузки» в мои linked_dirs так:

set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system', 'public/uploads') 

так, что Capistrano будет создать общие/Public/дату загрузки/(если нет) и симлинок каждого нового релиза развертывается к нему.

Смежные вопросы