ЯoomeR

プログラミング~実装とエラー解決と、時々、AI~

本番環境でjsが動かないときの解決方法[Rails]

[:contents] Renderにデプロイしたところ、デプロイ自体は成功したもののjsが動かなかった。

エラー文

ActionController::RoutingError (No route matches [GET] "/assets/○○.js"):

手っ取り早い解消方法

config.assets.compile = false
↓
config.assets.compile = true

この解決方法は、あまり重要でないアプリや一時的な確認のために使用する事を推奨する。

なぜなら、aseets.compileをtrueにすると、
「public/assetsで必要なファイルが見つからない場合、app/assetsなど別のディレクトリからファイルを探しコンパイルする」
という作業を自動的に行うからである。

本番環境ではcssなどのアセットが書き変わることがないため、上記のコンパイル作業はサーバーの無駄遣いになる。

よって、ユーザーへ公開するなどの場合にはprecompileするなどの方法で解消することをおすすめする。