Rails不显示公用文件夹中的图像

时间:2015-12-23 20:15:11

标签: ruby-on-rails ruby image

我正在制作应用 - 正在上传(使用carrierwave)pdf和ppt文件,然后Docsplit将图片/幻灯片提取到图片并将其保存到public/uploads/document/unique_timestamp/文件夹。

show视图中,图片无法显示,但链接正确无误 - 例如“http://localhost:3000/Users/my_user_name/Documents/rp/1512/my_app/public/uploads/document/1450527696/qwerty_2.jpg”,我看到enter image description here

我该怎么办?

在controllers / documents_controller.rb中:

def show
    @output_path = "#{Rails.root}/public/uploads/document/" + @document.image.to_s[-14,10] + "/"
end

在view / show.html.erb中:

<ul>
<% Dir.foreach(@output_path) do |f| %>

  <% if f != "." && f != ".." %>
    <li>
      <%= image_tag @output_path + f %>
      <br><%= f %>
    </li>

  <% end %>

<% end %>
</ul>

2 个答案:

答案 0 :(得分:0)

网址路径与文件系统路径之间存在差异。通常,URL路径/会映射到计算机上的public目录。因此,在请求http://localhost:3000/uploads/document/1450527696/qwerty_2.jpg时,您的网络服务器将提供/Users/my_user_name/Documents/rp/1512/my_app/public/uploads/document/1450527696/qwerty_2.jpg中找到的文件。

在您的代码中,您必须在其相关位置使用两个不同的路径,即获取可用文件时的文件系统路径和生成image_tag时的URL路径。

答案 1 :(得分:0)

从您的网址中删除public,然后尝试:

http://localhost:3000/uploads/document/1450527696/qwerty_2.jpg