繁体   English   中英

回形针,S3,Heroku:缺少图像

[英]Paperclip, S3, Heroku: Missing Image

长时间观看者,第一次询问。 我已经搜索了该主题,但不相信找到了答案。

我有一个具有图片的Post模型。 我正在使用Paperclip gem,保存到Amazon S3,并托管在Heroku上。

文件上传表单工作正常,因为我可以看到图像已发送到我的S3存储桶。

问题在于,这些图像实际上并未在生产中显示。

这是我的模型:

class Post < ActiveRecord::Base
    attr_accessor :image_file_name, :image_content_type, :image_file_size, :image_updated_at
    belongs_to :user
    has_many :reviews

    has_attached_file :image, styles: { medium: "700x500#", small: "350x250>" }
    validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/

这是我的config / production.rb:

# Required for Paperclip / AWS
config.paperclip_defaults = {
:storage => :s3,
:s3_credentials => {
    :bucket => ENV['S3_BUCKET_NAME'],
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
    }
}

这是我的show.html.haml文件:

.clearfix
    .post_image_description
        = image_tag @post.image.url(:medium)
        .description= simple_format(@post.address)
        .description= simple_format(@post.description)

@post.image.url应该不够吗? 我可能缺少正确路由到图像的内容?

这是我拉Heroku Logs时看到的:

2015-06-23T15:38:26.181383+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/images/medium/missing.png"):

供参考,这是我的项目资源库: https : //github.com/lucasvocos/pitstop

请让我知道问题中是否还有其他内容。 因为这是我第一次问。 感谢大家。

您需要为s3存储桶变量设置heroku环境变量:

heroku config:set S3_BUCKET_NAME='Your Bucket Name'
heroku config:set AWS_ACCESS_KEY_ID='Your AWS ID'
heroku config:set AWS_SECRET_ACCESS_KEY='Your AWS Secrete Key'

我有一个类似的问题,即上传正常,但显示屏显示链接断开。 我检查了链接的源,但它没有指向S3上为图像显示的URL。 我必须将主机名添加到我的回形针配置中

  config.paperclip_defaults = {
  :storage => :s3,
  :s3_host_name => 's3-us-west-2.amazonaws.com',
  :s3_credentials => {
    :bucket => ENV['S3_BUCKET_NAME'],
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
  }
  }

您必须提交\\ public \\ images \\ medium中的missing.png。(确保存在\\ public \\ images \\ medium \\ missing.png,然后提交)。 该图像是默认图像,直到您上传一些有效图像为止。

但是,也建议在模型中定义url,如下所示:

has_attached_file :image, styles: { 
 medium: "700x500#",
 small: "350x250>" }, :url => '/:class/:attachment/:id/:style_:basename.:extension'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM