我对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 %>
生产中断了。任何指针都会非常感激......我似乎无法弄清楚这一点,这非常令人沮丧。非常感谢你的时间和任何帮助!请指出我错误的指针。
答案 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的东西被“卡住”在生产缓存中,这就是为什么清除为我们解决了问题(因为在清除之后,您的应用将在下次部署时从头开始重建)