Это связано с ошибкой в самоцвете Скрепка в lib/paperclip/command_line.rb
файле .
def full_path(binary)
[self.class.path, binary].compact.join("/")
end
Функция full_path
генерирует имя командного файла с обратной косой чертой.
"C:\Program Files\ImageMagick-6.7.0-Q16"/identify
Эта команда не выполняется в Windows, поскольку оболочка cmd
выдает ошибку, когда командный файл имеет длинное имя с обратной косой чертой.
Существует два способа решения проблемы.
Используйте короткое имя файла в качестве пути команды.
Paperclip.options[:command_path] = 'C:/PROGRA~1/IMAGEM~1.0-Q'
Примечание : Вы можете получить краткое имя файла следующим образом:
dir /x "C:\Program Files*"
dir /x "C:\Program Files\ImageMagick-6.7.0-Q16*"
Обезьяна залатала камень "Скрепка" в config\initializers\paperclip.rb
.
Я проверял это на 2.3.11.
class Paperclip::CommandLine
def full_path(binary)
[self.class.path, binary].compact.join(File::ALT_SEPARATOR||File::SEPARATOR)
end
end
Теперь команда identify
генерируется с правильным разделителем пути.
"C:\Program Files\ImageMagick-6.7.0-Q16"\identify
Я предпочитаю второй подход, так как command_path
проще в настройке.