2

アプリを Heroku にデプロイしようとしました。それはかなり長い間機能してきましたが、いくつかの新しい機能を追加しています。デプロイすると、「App Crashed」エラーが発生しました。heroku logs示しNo such file to load -- nokogiri (LoadError)た。

さて、私のシステムでは、 2 つのGemfile.lock異なる nokogiri gemsが表示されました。プラットフォームの下は のみでした。私の開発用コンピューターは Windows 7 で、Heroku toolbalt 自体が使用する Ruby バージョンは.nokogiri (~> 1.5.0)fog (1.4.0)nokogiri (1.5.5-x86-mingw32)x86-mingw32ruby 1.9.3p194heroku-toolbelt/2.30.1 (i386-mingw32) ruby/1.9.2

Bundler のバージョンは最新で、Heroku ツールベルトのバージョンも最新でした。いくつかのフォーラム投稿のアドバイスに従って、削除Gemfile.lockして再デプロイしようとしましたが、アプリはまだクラッシュしました。

Heroku は適切なバージョンの nokogiri にバンドルされていなかったようですが、Windows を使用していたためにそれを無視していました。私が修正された方法はgem 'nokogiri', '~> 1.5.5'、gemfile に追加し (私のアプリは nokogiri を明示的に必要としませんが、依存関係にすぎません)、bundle install最初に自分のシステムで実行せずに Heroku に再デプロイすることでした。これで、アプリはクラッシュしなくなりました。

なぜこれが機能したのかわかりません。問題が再発しないようにする方法がわかりません。たまたま、絶望的なパッチで運が良かっただけです。今後このようなダウンタイムが発生することはありません。また、定期的なデプロイでこのようなことが再び発生することを心配することもできません。誰かが実際に何が間違っていたのか、それを解決する正しい方法を説明できますか?

4

1 に答える 1

0

これを追加

 PLATFORMS
    x86-mingw32

あなたのGemfileに。Gemfile.lockウィンドウには非常に異なる依存関係があるため 、Herokuはあなたを無視します。

于 2013-03-28T20:27:31.510 に答える