我正在制作应用 - 正在上传(使用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”,我看到
我该怎么办?
在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>
答案 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