デプロイ用の新しいリリースをビルドするときに私が行うことは、私のconfig/environments/test.rb
config.assets.compile = false
config.assets.digest = true
これは、アセット パイプラインの環境構成を模倣しproduction
、アセットがコンパイルされないようにし、manifest.yml
ファイル/アセット パイプラインを介してルックアップを強制します。テストを実行し (テストはありますよね? :-) )、失敗を監視します。
テストがない場合log/development.log
は、500 エラーをgrep してください
tail -f log/development.log | grep 500
いくつかのページを手動で移動し、末尾に表示される新しいログ エントリを監視します。ただし、これを自動化するためのテストを作成することを検討する必要があります。
本番環境でエラーが表示される理由は、アセット パイプラインがリクエストしているアセットを見つけることができず、これが原因で例外が発生するためです。開発中は、500 エラーに優先してデバッグ情報を提示できるように、より寛大です。環境で上記の構成を変更することにより、アセット パイプラインを介して欠落しているアセットへの応答に関して厳密に動作するように Rails に指示し、本番環境に移行する前に問題をキャッチできるようにします。