先日、既存のシステムを外部仕様そのままにRails化する案件がありました。(Railsのバージョンは5.1)
最初の段階として、現行サイトのHTMLをERB化し、JavaScriptとCSSは既存のものをそのまま使うことにしました。
なお、JSとCSSはいろんな箇所で読み込まれており、順番を変えると挙動が変になったため、config/initializers/assets.rb
でRails.application.config.assets.precompile
に指定して個別に読み込むようにしました。
その他諸々の準備を終えて./bin/rails s
でサーバーを起動。さてこれでとりあえずは今までどおりの見た目で動くはず…!
ブラウザで見てみると、上記のようにエンコーディングのエラーが発生。
元が古いシステムなのでここまでは想定内。該当のファイルの文字コードをUTF-8に変換。
しかし、文字コードを修正しても、再度同じ箇所でエラーが発生。
そのファイルを消しても、中身を空にしても、springを止めても、tmp/cache/assets
を消しても、サーバーを再起動しても解消せず。
数分間悩んだ結果、Rails.application.config.assets.precompile
に指定したファイルの中で1つでも問題が発生していると、全ファイルが読み込めなくなる、というオチでした。
今回はEUCのJSファイルがあり、それが原因でエラーが発生していました。(CSSも読めなくなる)
めでたしめでたし。