Активное хранилище SVG? - PullRequest
0 голосов
/ 05 декабря 2018

У меня сейчас проблемы с переносом моего проекта из Paperclip в ActiveStorage.Точнее у меня проблемы с ActiveStorage и хранением изображений SVG.

Я знаю, что SVG-файлы - это изображения, но они не являются переменными изображениями.Из-за этого Active Storage почему-то создает ссылки для скачивания, и поэтому файлы svg не отображаются в браузере.

Активное хранилище игнорирует content_type, например (из моих семян):

job = Job.create(career.except(:icon, :og_image))
job.icon.attach(io: career[:icon], filename: 
File.basename(career[:icon].path), content_type: 'image/svg+xml' )
job.og_image.attach(io: career[:og_image], filename: 
File.basename(career[:og_image].path), content_type: 'image/png' )

Активное хранилище обращается к «application / octet-stream», хотя «iamge / svg + xml» является допустимым изображениемтип.Я удалил все проверки из моих моделей, и в мой gemfile был добавлен драгоценный камень miniMagick.С файлами png и jpg он работает отлично.

Мой вопрос: что я делаю не так?И есть ли в ActiveStorage поддержка SVG-файлов?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Добавьте этот код в ваш config / application.rb:

# Hack for allowing SVG files. While this hack is here, we should **not**
# allow arbitrary SVG uploads. https://github.com/rails/rails/issues/34665

ActiveStorage::Engine.config
.active_storage
.content_types_to_serve_as_binary
.delete('image/svg+xml')

Вы можете удалить комментарии, конечно :).Надеюсь, это поможет.

0 голосов
/ 06 декабря 2018

Svg считаются бинарными типами контента, поэтому ссылки svg Active Storage представлены как ссылки на вложения для скачивания.Вы можете увидеть все типы содержимого и ограничения по этой ссылке https://github.com/rails/rails/blob/master/activestorage/lib/active_storage/engine.rb.

Подробнее об этом ограничении и объяснении можно найти здесь: http://github.com/jdelStrother/rails/commit/06ab7b27ea1c1ab357085439abacdb464f6742bf. Я опубликую эту проблему.Может быть, они исправят это в будущем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...