Rails回形针和SVG图像

sar*_*ink 9 svg ruby-on-rails paperclip

model.rb:

has_attached_file :image validates_attachment :image, :content_type => { :content_type => ['image/svg+xml'] }

结果:"图片的扩展名与其内容不匹配,无效,无效"

尝试附加实际上有效的SVG文件时.

注意,我也尝试过'image/svg-xml'具有相同结果的类型

Chr*_*ers 5

对我来说,这个问题的解决方案是确保 SVG 文件的内容以以下内容开头:

<?xml version="1.0" standalone="yes"?>
Run Code Online (Sandbox Code Playgroud)

在幕后,Paperclip 使用该file命令来确保文件的内容与文件名匹配。该检查似乎希望在 SVG 文件的开头使用此声明。

考虑到来自 W3C示例文件甚至没有它,我觉得这很不幸:

<svg id='svg1' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'>
  <circle r="32" cx="35" cy="65" fill="#F00" opacity="0.5"/>
  <circle r="32" cx="65" cy="65" fill="#0F0" opacity="0.5"/>
  <circle r="32" cx="50" cy="35" fill="#00F" opacity="0.5"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

我正在考虑在模型中添加一些逻辑以将其添加到内容的开头,如果它在运行检查之前尚不存在。不知道我是否真的应该这样做。