【发布时间】:2017-05-14 16:29:01
【问题描述】:
我正在编写一个 Ruby on Rails 5 应用程序。我刚刚学会了如何在不使用回形针、载波或重新归档的情况下上传图像。我过去使用过 refile,但对于这个应用程序,我想学习如何在没有那些第三方 gem 的情况下做到这一点。这并不难做到。我已成功上传文件。我的问题是之后访问图像!我认为这会很简单。但不是!
我有图片文件正在上传到“/public/images/page/image.jpg”
我已在 app/initializers/assets.rb 中的资产路径中添加了“/public/images/page”
我尝试过这样的直接 img 标签:
<img class="pic left" src="/public/images/page/mars01.jpg" alt="Mars01" />
我收到“(没有路线匹配 [GET] “/public/images/page/mars01.jpg”)”错误。 我试过了:
<%= image_tag "/public/images/page/#{@page.image}", class: 'pic left' %>
与标签基本相同,得到相同的结果。也试过了:
<img class="pic left" src='<%= image_path "#{@page.image}" %>' />
仍然出现路由错误,但只查看“/images”目录。我仍处于开发模式,所以我认为 image_path 将是正确的路径。
访问刚刚上传到资产管道之外的目录的图像的正确方法是什么?这将在开发或生产环境中工作吗?我真的认为这将是直截了当的。
【问题讨论】:
-
您正在尝试访问上传的静态图片,您无法使用资产管道。我将删除您添加到 assets.rb 的设置并直接指向图像路径:
Rails.root.join( 'public', 'image', 'mars01.jpg' ).to_s
标签: ruby-on-rails image upload asset-pipeline