0

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

我已将我的代码部署到亚马逊服务器,我还配置了存储桶详细信息,但它仍然存在生产问题,尽管它在本地主机上运行良好。

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

这是我的回形针代码:

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 %>

在生产中发生故障。任何指针将不胜感激......我似乎无法弄清楚这一点,这非常令人沮丧。非常感谢您的时间和任何帮助!请指出我犯错的地方。

4

1 回答 1

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 的某些东西“卡”在了生产的缓存中,这就是为什么清除为我们解决了这个问题(因为在清除之后,您的应用将在下一次部署时从头开始重建)

于 2014-11-26T17:57:17.380 回答