我的app/assets/images/
文件夹中有一个名为“Flower.jpg”的图片。 <%=image_tag("Flower.jpg")%>
可以显示它,但我想用html显示它。 <img src="Flower.jpg">
没有做任何事情。
对于我的模型用户我也使用Paperclip,它将图像存储在public/system/users/avatars/000/000
中,User.avatar_file_name
返回绝对文件路径,在本例中为/system/users/avatars/000/000/157/thumb/Flower.jpg?1248273956
。将此路径插入src,如下所示:<img src="<%=@user.avatar_file_name%>">
用于显示图像。
我在rails控制台中找到了Flower.jpg的绝对路径:
> helper.image_tag("Flower.jpg")
=> "<img alt=\"Flower\" src=\"/assets/Flower.jpg\" />
但即使<img src="/assets/Flower.jpg\">
有<img src="/system/users/avatars/000/000/157/thumb/Flower.jpg?1248273956">
,也不会显示{{1}}。那是为什么?
答案 0 :(得分:1)
image_tag
帮助程序将标准images文件夹的路径添加到文件路径中。在我的rails版本中,这是&#34; / images /&#34;,所以这个
<%=image_tag("Flower.jpg")%>
呈现为
<img src="/images/Flower.jpg">
与所有这样的资源路径一样,实际文件应该与您的应用程序相关。公共文件夹,即
<RAILS ROOT>/public/images/Flower.jpg
在您的rails版本中,默认路径为/app/assets/images/
,因此
<%=image_tag("Flower.jpg")%>
呈现为
<img src="/app/assets/images/Flower.jpg">
指向此文件:
<RAILS ROOT>/public/app/assets/images/Flower.jpg
如果你这样做
<img src="Flower.jpg">
它会期望文件位于<RAILS ROOT>/public/Flower.jpg
,显然它不存在,所以img标签不起作用。如果你想自己写出来而不使用帮助器,那么从<RAILS ROOT/public
文件夹中提供文件的路径,即
<img src="/app/assets/images/Flower.jpg">
在你的html片段中BTW你放scr="
而不是src="
,这将打破更多。