回形针与亚马逊s3在开发中工作但不在生产中工作(亚马逊ec2)?

时间:2013-07-27 04:53:42

标签: ruby-on-rails-3 ruby-on-rails-3.2 amazon-s3 amazon-ec2 paperclip

我对rails非常陌生,似乎对回形针宝石存在问题。我安装了gem并且它在开发中运行良好(localhost:3000)但是当我在亚马逊服务器上运行它时,由于某种原因它不想附加文件,应用程序中断(错误500页)。

我已将我的代码部署到亚马逊服务器,我也配置了存储桶详细信息,但仍然存在生产问题,尽管它可以与localhost一起使用。

这是我运行的过程......我将文件推送到亚马逊。这似乎没有帮助。

以下是我对回形针的代码:

user.rb型号:

       has_attached_file :avatar,
                         :styles => {
                         :thumb  => "50x50",
                         :medium => "400x400",
                         :square => "70x70"
                                    },
      :storage => :s3,
      :s3_credentials => "#{Rails.root}/config/s3.yml",
      :path => ":attachment/:id/:style.:extension",
      :bucket => "mybucket"

我的用户表单:

       <%= form_for(@user, url: "/sessions/#{current_user.id}", :html =>{:method => :put,       :class => "form-horizontal", :multipart => true}) do |f| %>
       <%= f.file_field :avatar %>
       <% end %>

生产中断了。任何指针都会非常感激......我似乎无法弄清楚这一点,这非常令人沮丧。非常感谢你的时间和任何帮助!请指出我错误的指针。

1 个答案:

答案 0 :(得分:0)

与image_magic有同样的问题,它在生产中破坏了我们的回形针功能,但没有在开发中(很奇怪,我知道)。即使从我们的gemfile和Gemfile.lock本地删除imagemagick(运行bundle install和所有这些东西)然后在heroku上部署回生产,错误仍然存​​在于生产中! (很奇怪,我知道)。

最终做的诀窍是:

$ heroku repo:purge_cache -a myAppName

(摘自:https://github.com/heroku/heroku-repo#purge_cache

当您部署应用程序时,Heroku会缓存一些内容,例如您的资产和已安装的gem,以加快部署速度。虽然这是一个很棒的功能,但它有时会产生副作用,在这种情况下,似乎有关于imagemagick gem的东西被“卡住”在生产缓存中,这就是为什么清除为我们解决了问题(因为在清除之后,您的应用将在下次部署时从头开始重建)