Ruby on rails 3.2 为什么我的'image_tag'路径有时会以'assets'目录*作为前缀?
我有一张简单的Ruby on rails 3.2 为什么我的'image_tag'路径有时会以'assets'目录*作为前缀?,ruby-on-rails-3.2,Ruby On Rails 3.2,我有一张简单的照片模型: class Photo < ActiveRecord::Base attr_accessible :image, :thumb, :title end 这将生成此html源代码段: <tr> <td>IMG_8283.JPG</td> <td>photo/thumb/1/IMG_8283.JPG | <img alt="Img_8283" src="/assets/photo/thumb/1/IM
照片
模型:
class Photo < ActiveRecord::Base
attr_accessible :image, :thumb, :title
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>
img8283.JPG
photo/thumb/1/img8283.JPG|
为什么第二种情况下有
/asset
前缀而不是第一种情况下的前缀?我希望
标记引用相同的基本位置路径(这也是我的首选)。在第二个示例中,当您使用image\u tag
时,您使用的函数访问照片,这意味着image\u标签
将把您的路径附加到assets/
,以便找到您要查找的照片
但是,如果在
public/assets…
中已经有一个文件,它仍然会被提供,这会给您带来不一致的问题。err。。。我以为我在这两种情况下都使用了image\u标签
。。。但这可能不是你想要区分的。作为一个最佳实践,你有什么建议?好吧,一开始我没有看到。你在资产和公共目录中都有图像吗?我没有,但是为了继续设计,我在文件系统中从public/assets/photo/thumb->public/photo/thumb
创建了一个软链接。例如,当您第一次创建项目时,您必须删除索引页,否则任何其他索引页都不会显示。但是,在这种情况下,image_标记将首先从public中提取。
<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>
<% @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 %>
<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>