Rails 4.1
Ruby 2.1.1
我认为我有以下内容:
<% img_loc = "#{Rails.root}/app/assets/images/cw/agent/avatar/#{agent.id.to_s}/thumb_#{a.img_name}"%>
<td><%= image_tag "#{img_loc}" %></td>
当我在生产服务器上运行时,图像不显示。我的生产日志显示以下内容:
INFO -- : Started GET "/home/dnc/app/assets/images/cw/agent/avatar/11/thumb_myimage.jpg"
FATAL -- :
ActionController::RoutingError (No route matches [GET] "/home/dnc/app/assets/images/cw/agent/avatar/11/thumb_myimage.jpg"):
但是当我检查时,文件/home/dnc/app/assets/images/cw/agent/avatar/11/thumb_myimage.jpg确实存在。有任何想法吗?
答案 0 :(得分:1)
路径助手
有人不得不质疑你为什么不使用asset path helpers
来访问images
目录:
<% img_loc = image_path("cw/agent/avatar/11/thumb_myimage.jpg") %>
-
或者,可能更合适一点,你应该考虑使用image_tag
和相对路径,因为这将加载你需要的图像而不必硬编码:
<%= image_tag "cw/agent/avatar/11/thumb_myimage.jpg" %>
我理解你的推理(你想直接访问图片),但我没有得到你的方法。 Rails具有非常强大的相对路径系统,可以根据需要灵活地访问图像