Inline_svg gem不起作用。找不到SVG文件

时间:2017-09-18 22:51:55

标签: ruby-on-rails ruby svg inline-svg

我正在运行rails 5.0.1并使用最新版本的inline_svg gem:Inline SVG

问题是,即使我把svg放在这样的正确路径上:

<%= inline_svg "/assets/svg/add.svg", class: 'some-class' %>

图片位于&#34; app / assets / svg / add.svg&#34;。

我在浏览器上收到此错误:

<!-- SVG file not found: '/assets/svg/add.svg' -->

我认为他可以因为svg没有正确加载,但我在谷歌上没有看到任何关于它的信息。

1 个答案:

答案 0 :(得分:1)

<%= inline_svg 'add.svg' %>

您可以在localhost:3000/assets/add.svg

找到您的svg

你说你已经检查了路径,但是如果你需要额外的证明运行rails c那么Rails.application.config.assets.paths

您的路径应该在输出中

资产未预编译

如果您无法在localhost:3000/assets/add.svg显示资产,则表示未进行预编译。此过程从一些文件夹(如app/assets/javascriptstylesheets等)中获取文件,以及application.rbassets.rb文件中包含的文件夹

config.assets.paths << Rails.root.join("app","assets", "svg")

为每个必需的文件创建一个指纹版本。指纹是一个字母数字代码,用于区分application.jsscss的每个不同版本以及您的图片其他文件read more at about fingerprinting hear

此外,您可以预编译开发或生产,但是您有2个不同的命令,因此问题是您在哪里遇到此问题?

如果您正在开发中进行预编译,则可以git add <name-of-new-files-precompiled>然后git status检查新文件/ svg是否已添加到您的git中,然后再运行git commit -m 'adding an svg file to git'然后运行git push heroku master }或git push -u origin master

其他情景

我等待您的意见,首先我需要知道的是您是否可以在生产/开发中显示该资产

您使用的是哪个版本的gem,因为只有版本0.10支持rails 5.可能不支持rails 5.0.1。

另请阅读有关支持absolute file paths

的问题