我正在运行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没有正确加载,但我在谷歌上没有看到任何关于它的信息。
答案 0 :(得分:1)
<%= inline_svg 'add.svg' %>
您可以在localhost:3000/assets/add.svg
你说你已经检查了路径,但是如果你需要额外的证明运行rails c
那么Rails.application.config.assets.paths
您的路径应该在输出中
如果您无法在localhost:3000/assets/add.svg
显示资产,则表示未进行预编译。此过程从一些文件夹(如app/assets/javascript
和stylesheets
等)中获取文件,以及application.rb
或assets.rb
文件中包含的文件夹
config.assets.paths << Rails.root.join("app","assets", "svg")
为每个必需的文件创建一个指纹版本。指纹是一个字母数字代码,用于区分application.js
,scss
的每个不同版本以及您的图片其他文件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
的问题