gpt4 book ai didi

ruby-on-rails - 如何使用 Active Storage 将 SVG 显示为图像

转载 作者:行者123 更新时间:2023-12-05 01:19:26 31 4
gpt4 key购买 nike

我目前在将我的项目从 Paperclip 移动到 ActiveStorage 时遇到问题。更准确地说,我在 ActiveStorage 和存储 svg 图像方面遇到了问题。

我知道 svg 文件是图像,但它们不是可变图像。由于某种原因,事件存储正在创建下载链接,这就是为什么浏览器中不显示 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' )

尽管“iamge/svg+xml”是有效的图像类型,但事件存储属于“application/octet-stream”。我已经从模型中删除了所有验证,并将 miniMagick gem 添加到我的 gemfile 中。对于 png 和 jpg 文件,它可以完美运行。

我的问题是,我做错了什么? ActiveStorage 甚至支持 svg 文件吗?

最佳答案

将此代码添加到您的 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')

您当然可以删除评论:)。希望能帮助到你。

关于ruby-on-rails - 如何使用 Active Storage 将 SVG 显示为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53629110/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com