如何在ERB中编写像<img/>标记这样的纯HTML?

时间:2015-11-17 11:08:21

标签: html ruby-on-rails image

我希望将<%= link_to image_tag ("picture.png")替换为这样的内容:<img src="/path/picture.png" /> in file.html.erb

但是当我这样做时,它没有任何错误,但页面上没有图片。

4 个答案:

答案 0 :(得分:3)

你可以这样做:

<img src="<%= image_path('picture.png') %>" />

但我不明白为什么这比这更好:

<%= image_tag("picture.png") %>

答案 1 :(得分:3)

所以,这是我的答案:

默认情况下,rails将从public文件夹中提供所有资源。

您可以将图片放入assets/images文件夹,并根据assets pipeline呈现这些图片。

但是,如果你想使用原生的

<img src="/path/picture.png" />
就像你在问题中提到的那样,你应该明白你在src中指定的路径(src =&#34; /path/picture.png")将相对于您的申请的public文件夹。

要完成上述工作,picture.png不会放在app/assets/images/picture.png中,而应放在public/path/picture.png中。

按照惯例,您需要将图片放在:

public/images/picture.png

因此,您应该在视图中使用img标记,如下所示:

<img src="/images/picture.png" />

这样可以解决您的问题。

答案 2 :(得分:0)

如果您使用的是Rails 4.2,则必须使用资产管道,

因此,您应在image_tag代码中使用image_pathsrc代替Html

实施例

image_path("rails.png") # => "/assets/rails.png"

<img src="<%= image_path('rails.png') %>" />

   image_tag("rails.png")
   # => <img alt="Rails" src="/assets/rails.png" />

请阅读asset_pipeline

答案 3 :(得分:0)

要呈现放置在picture.png目录中的图像app/assets/images,您还可以直接将图像路径中的assets目录指定为:

<img src="/assets/picture.png" />