我有一个简单的Photo
模型:
class Photo < ActiveRecord::Base
attr_accessible :image, :thumb, :title
end
并且在特定照片的记录视图中,erb:
<p id="notice"><%= notice %></p>
<p><%= image_tag @photo.image if @photo.image? %></p>
<%= link_to 'Edit', edit_photo_path(@photo) %> |
<%= link_to 'Back', photos_path %>
生成以下html片段(在body标签中):
<p id="notice"></p>
<p><img alt="Img_8283" src="/photo/image/1/IMG_8283.JPG" /></p>
<a href="/photos/1/edit">Edit</a> |
<a href="/photos">Back</a>
哪个没问题,因为照片存储在public/photo/image/1/IMG_8283.JPG
。
但是,在索引视图中,我有这个错误的代码:
<% @photos.each do |photo| %>
<tr>
<td><%= photo.title %></td>
<td><%= photo.thumb %> | <%= image_tag photo.thumb if photo.thumb? %></td>
<td><%= link_to 'Show', photo %></td>
</tr>
<% end %>
生成此html源代码段:
<tr>
<td>IMG_8283.JPG</td>
<td>photo/thumb/1/IMG_8283.JPG | <img alt="Img_8283" src="/assets/photo/thumb/1/IMG_8283.JPG" /></td>
<td><a href="/photos/1">Show</a></td>
</tr>
为什么在第二种情况下有/asset
前缀,而不是第一种? 我希望<img>
代码可以引用相同的基本位置路径(也是我的偏好)。
答案 0 :(得分:0)
在第二个示例中,当您使用image_tag
时,您正在使用assets pipeline中的某个功能来访问照片,这意味着image_tag
会将您的路径附加到{{1}为了找到你要找的照片。
但是,如果assets/
中已有文件,则仍会提供该文件,从而为您提供不一致的问题。