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

<img src=""> Isn't accepting image path

我的 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 returns 绝对文件路径,在本例中是这样的:/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=",这会进一步破坏它。