概要
-
起こった現象:
EC2でデプロイしたアプリにアクセスできない -
エラー概要:
Rails assets:precompile RAILS_ENV=production
このコマンドでアセットをコンパイルしようとすると以下のエラーが出る。
仮説と検証
このエラーから、「アセットファイルがリミットを超えている」と理解しました。
対処法として、「サイズが超えているファイルを特定して対処する」
もしくは「サイズの上限を上げる」このどちらかになると思い調べました。
検証1(サイズが超えているファイルを特定して対処する)
エラー文を見ると、js/application-0bc4a48eadb9d940687.js.map.gz
というファイルがサイズを超えているそうです。
VSCodeを見ても特定のファイルは見つからず、サイズを超えているファイルが複数あることからこの方法は断念しました。多分ですが、bootstrapのファイルだと思います。
補足1:bootstrapとjqueryを削除
どうもassetsとwebpackerで干渉してたものがあったらしく、
gemfileからjquery-railsとbootstrapを削除。
そのエラーは出なくはなりました。
参考にしたサイト
上記のような対処法がありましたがbootstrapとjquery-railsを削除したくなかったので実際には試しておりません。もし、消しても問題がなければお試しください。
補足2: うまく規定サイズ内に納めてコンパイルさせる方法
参考にしたサイト
こちらはwebpack公式のドキュメントに沿ってサイズ内にコンパイルさせる方法です。
ディレクトリ構造などが分からず、行っている内容もあまり理解できなかったため、実際には行っていませんが、もしこちらの方法でできるのであれば、ベストな気がします。
検証2(サイズの上限を上げる)
こちらは実際に行ってうまく行った方法です。
# 変更前
resolved_paths: []
# 変更後
additional_paths: []
これだけです。
pathを変えることで、うまく行きました。
参考になったサイト
まとめ
このエラーで3日潰れました。
この記事によりあなたのエラーが解決するといいですね!