2014-09-19 3 views
0

У меня проблема с Carrierwave и Capistrano. Идет ситуация:Capistrano + Carrierwave issue

  • Я установил Capistrano для сохранения только одного выпуска. (предложения по тестированию).
  • Текущая версия указывает на 20140918231215.
  • Capistrano имеет возможность:

    набор: linked_dirs,% вес {бен журнала TMP/PIDS TMP/кэш TMP/Sockets TMP/сессий общественных/загрузки}

Таким образом, текущая публикация/выгрузка связана с общими/общедоступными/загружаемыми, это нормально. Проблема возникает, когда я загружаю новый файл. В этом случае перед папкой выпуска создается новая папка.

Есть ли способ обновить Capistrano Uploader store_dir, я подозреваю, что у вас плохая конфигурация.

Примечание:

  • Новые символический от last_release к совместно создан правильно.
  • Перед выпуском удаляется правильно.
  • Проблема в том, что когда я загружаю новое изображение, оно создается в before_release/public/uploads. Эта папка не существует, поэтому она создается без символической ссылки, очевидно.

Я очень ценю любую помощь, которую вы можете предоставить.

ответ

0

Если папка на вашем сервере правильно символизирована, то capistrano выполняет свою работу должным образом.

Ваша проблема звучит для меня, что ваш загрузчик делает неправильную вещь.

Проверьте метод store_dir, может быть что-то делает с ума: Mine выглядит следующим образом:

class LogoUploader < CarrierWave::Uploader::Base 
    include CarrierWave::RMagick 
    storage :file 

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

Примите во внимание, что carrierwave уже использует по умолчанию общих папок.

0

Я решил написать новую папку (последняя версия) с помощью «sudo service nginx restart» после развертывания, что, по-моему, было ненужным, не так ли?

EDIT:

Я понял! Я добавил эту строку в конфиг/deploy.rb:

namespace :deploy do 
    desc "Restart" 
    task :restart do 
    on roles(:web) do 
     execute "touch #{release_path}/tmp/restart.txt" 
    end 
    end 
end 

Я также добавил файл restart.txt в TMP папку.

Кажется, что «трюк» перезапустил Ruby on Rails через Phusion Passenger.

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