Ruby rails link_to 资产中的图像

Ruby on rails link_to an image in assets

我敢肯定有很多 post 像这样,但是在检查它们之后我没有找到任何人来回答我的问题。 我正在尝试使用 link_to 获取位于 "app/assets/images/levers/I.a.1.png" 的图像,如下所示:

<%= link_to("Biomasa", image_path("levers/I.a.1.png"), :target => "_new") %>

无论我尝试了多少次不同的路径组合,它都不起作用。我收到此错误:

The asset "levers/I.a.1.png" is not present in the asset pipeline.

我遗漏了什么或做错了什么?

更多信息

我不确定这是否重要,但我正在使用 "Bash on Ubuntu on Windows" 使我的 windows 10(在工作中)成为可能。

将此配置添加到您的 application.rb 以将 app/assets/images 中的文件包含到资产管道中

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

然后,在您的 rails 视图中,您可以将 link_toasset_path

一起使用
<%= link_to root_path, :target => "_blank" do %>
  <%= image_tag asset_path("I.a.1.png") %>
<% end %>

您可以将块传递给 link_to。试试这个:

<% link_to('/wherever/you/want/to/link-to', :target => '_new') do %>
  <%= image_tag('I.a.1.png', alt: 'Biomasa') %>
<% end %>

图像标记应自动查找 app/assets/images,因此这将添加路径的其余部分。

将此添加到 config/initializers/assets.rb

Dir.glob("#{Rails.root}/app/assets/images/**/").each do |path|
  Rails.application.config.assets.paths << path
end

你应该可以开始了。

我终于解决了这个问题。问题是在我的图像扩展中区分大小写。它是 .PNG,我正在尝试 .png