我希望将<%= link_to image_tag ("picture.png")
替换为这样的内容:<img src="/path/picture.png" />
in file.html.erb
但是当我这样做时,它没有任何错误,但页面上没有图片。
答案 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_path
或src
代替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" />
答案 3 :(得分:0)
要呈现放置在picture.png
目录中的图像app/assets/images
,您还可以直接将图像路径中的assets
目录指定为:
<img src="/assets/picture.png" />