<img src=""/>不接受图片路径

时间:2015-02-06 16:43:58

标签: html ruby-on-rails ruby-on-rails-4 path paperclip

我的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}}。那是为什么?

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=",这将打破更多。