回形针,amazons3正在开发中,但尚未投入生产(amazonec2)



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

我已经将我的代码部署到了amazon服务器上,我还配置了bucket详细信息,但它在生产方面仍然存在问题,尽管它在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 %>

生产中出现故障。任何建议都将不胜感激。。。我似乎就是想不通,这很令人沮丧。非常感谢您的时间和帮助!请指出我犯错误的地方。

image_magic也有同样的问题,它在生产中破坏了我们的回形针功能,但在开发中却没有(我知道这很奇怪)。然而,即使在本地从我们的gemfile和gemfile.lock中删除了imagemagik(运行捆绑包安装和所有这些东西),然后在heroku上部署回生产之后,这个错误仍然存在于生产中!(我知道这很奇怪)。

最终成功的是运行:

$ heroku repo:purge_cache -a myAppName

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

当你部署你的应用程序时,Heroku会缓存一些东西,比如你的资产和安装的宝石,以加快部署速度。虽然这是一个很好的功能,但有时也会产生副作用,在这种情况下,imagemagick gem的某些东西似乎被"卡"在了生产的缓存中,这就是为什么清除为我们解决了这个问题(因为在清除后,您的应用程序将在下一次部署时从头开始重建自己)

最新更新