Paperclip image_tag不显示带有S3和Rails的图像

时间:2018-01-03 14:42:39

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

我在我的Rails(4.2)应用程序中使用Paperclip进行S3图像上传。除了image_tag不显示图像而是显示图像标题这一事实外,一切正常。我错过了什么?

recipe.rb

class Recipe < ActiveRecord::Base

  has_attached_file :image, styles: {
    thumb: '100x100>',
    square: '200x200#',
    medium: '300x300>'
  }


  validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
  validates_with AttachmentSizeValidator, attributes: :image, less_than: 1.megabytes

end

食谱show.html.erb

<p id="notice"><%= notice %></p>

<p>
  <strong>Name:</strong>
  <%= @recipe.name %>
</p>

<div class="col-xs-12" style="height:400px">
  <%= image_tag @recipe.image.url(:original) %>
</div>


<%= link_to 'Edit', edit_recipe_path(@recipe) %> |
<%= link_to 'Back', recipes_path %>

更新:解决方案

  

要使其发挥作用,还需要做两件事:

     
      
  1. s3_host_name: "s3-#{ENV['AWS_REGION']}.amazonaws.com"添加到配置中。这是建议here的解决方法。
  2.   
  3. :s3_protocol => :https添加到配置中,因为aws-sdk-2明确需要此功能(如评论中所述)。
  4.   

1 个答案:

答案 0 :(得分:0)

在aws-adk-2中,您需要在配置中明确指定s3协议:s3_protocol =&gt; :HTTPS

最新版本的回形针取决于aws-sdk-2。所以你必须指定协议。

通过这种方式,这将使用https保存您的图片网址。

本回答将帮助您see the link。你有同样的问题。