我的 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">
做。这是为什么?
最佳答案
image_tag
帮助程序将标准图像文件夹的路径添加到文件路径中。在我的 Rails 版本中,这是“/images/”,所以这个
<%=image_tag("Flower.jpg")%>
呈现为
<img src="/images/Flower.jpg">
对于所有这样的资源路径,实际文件应该是相对于您的应用程序的公共(public)文件夹,即
<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 片段中 scr="
而不是 src="
这将进一步破坏它。
关于html - <img src =""> 不接受图像路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28370617/