【问题标题】:How to get image to show using s3 and paperclip?如何使用 s3 和回形针显示图像?
【发布时间】:2016-02-24 11:11:28
【问题描述】:

我正在为我的 Rails 应用程序使用回形针和 AWS 来上传图像。你可以在这里找到它:http://lit-stream-6263.herokuapp.com/

当我尝试上传图片时,我没有收到错误消息,但由于某种原因图片没有显示。但是,当我进入 S3 存储桶时,我能够看到上传的图像......它只是没有在 html 页面中呈现。有关如何解决此问题的任何建议?

更新 从 9nonnatus,如果我更改 URL,我会看到图片。但是在我的 Rails 视图中,我有

<%= image_tag product.avatar.url(:medium) %> 

显示图像。这也是我在文档中看到的。如何调整它以适合您上面提到的网址?

class Product < ActiveRecord::Base
  attr_accessible :blog_link, :blog_name, :description, :image_link, :name, :num_likes, :product_link, :avatar
  has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"

end

【问题讨论】:

  • 你能在你的模型中显示代码吗?只是 has_attached_file 部分,您的图像标签看起来是正确的 - 除非您在上传期间没有指定 :medium 的样式
  • 刚刚添加了产品模型的代码
  • 代码看起来没问题 - 如果你直接去s3.amazonaws.com/rockywolfugc/products/avatars/000/000/003/…@9nonnatus 是正确的,你有没有对你的 s3 设置进行任何特殊配置?我们使用 paper_clip url 方法生成 http://s3.amazonaws.com/BUCKET_NAME/ url 没有问题?
  • 看看:rubydoc.info/gems/paperclip/Paperclip/Storage/S3 - 注意url选项,猜你需要做:url =&gt; ":s3_domain_url"
  • 在我的 production.rb 和 heroku 中哪里可以包含这个?如果你在下面的链接回答,我可以给你信用:) stackoverflow.com/questions/20558281/…

标签: ruby-on-rails amazon-s3 paperclip


【解决方案1】:

查看页面来源,您可以复制图像链接并尝试在浏览器中访问它。它会给出一个错误,告诉您您的超链接格式不正确。而不是使img src 格式类似于:

http://s3.amazonaws.com/rockywolfugc/products/avatars/000/000/003/medium/59577_10100258833612183_1508749_n.jpg?1386876682

你必须使用这种格式:

http://rockywolfugc.s3-us-west-2.amazonaws.com/products/avatars/000/000/003/medium/59577_10100258833612183_1508749_n.jpg?1386876682

换句话说,从.com 之后删除/rockywolfugc 并将s3 替换为rockywolfugc.s3-us-west-2

希望对您有所帮助。

【讨论】:

  • 在我的 Rails 视图中,我有 。这也是我在文档中看到的。如何调整它以适合您上面提到的网址?
猜你喜欢
  • 2015-01-25
  • 2017-05-04
  • 2018-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-14
相关资源
最近更新 更多