0

私はレールにかなり慣れていないので、ペーパークリップの宝石に問題があるようです。gem をインストールし、開発 (localhost:3000) ではうまく動作しますが、Amazon サーバーで実行すると、何らかの理由でファイルを添付したくなく、アプリが壊れます (エラー 500 ページ)。

コードをAmazonサーバーにデプロイしました。バケットの詳細も構成しましたが、ローカルホストでは問題なく動作しますが、まだ生産に問題があります。

これが私が実行したプロセスです...ファイルをAmazonにプッシュしました。これは役に立たなかったようです。

ペーパークリップ用のコードは次のとおりです。

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 に答える