Inline_svg gem 不工作。找不到 SVG 文件

Inline_svg gem not working. SVG file not found

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

问题是,即使我像这样将我的 svg 放在正确的路径中:

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

图像位于 "app/assets/svg/add.svg"。

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

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

我认为他可以,因为 rails 没有正确加载 svg,但我在 google.

上没有看到任何相关信息

<%= inline_svg 'add.svg' %>

您的 svg 可以在 localhost:3000/assets/add.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 检查新的 file/svg 是否在 [=63= 之前添加到您的 git ]ning git commit -m 'adding an svg file to git' 然后 运行 git push heroku mastergit push -u origin master

其他场景

我等待您的输入,我需要知道的第一件事是您是否可以在 production/development

中显示该资产

还有你用的gem是什么版本,因为只有0.10版本支持rails5。可能rails5.0.1不支持

另请阅读有关支持 absolute file paths

的问题