🐜
Rails 5.2 -> 6.0 アップグレード時にgemのassets読み込みがエラーになる問題
なにが起きたか
Rails 5.2 から 6.0 系にアップグレードする際、合わせて sprockets-rails
を => 3.3.0
にアップデートすると発生する挙動にハマった話。
gem のcssからurl()
読み込まれるパスがasset precompileされなくなる。
このissueで指摘されている事象と同一と思われる。
解決策
sprockets-rails
のバージョンを固定する。
Gemfile
gem `sprockets-rails`, '3.2.2'
原因(と思しきもの)
v3.3.0 から入っている、 https://github.com/rails/sprockets-rails/pull/476/ の修正で、 cssファイル内の url()
の置換をしている。
今後
最小構成で問題再現させて、PR出すまで行けると理想的。
Railsでメンテナンスされているバージョンは(2025/05/24時点)、セキュリティ系は7.0系以降、バグ修正は7.2系以降である。
この記事が誰かの役に立つ可能性は低いと思いたいけど、役に立ったら嬉しい。
古いバージョンのアップデートをするということはそれだけそのアプリケーションは長く運用されてきたわけで、サービスとしてなかなか幸運なことでもある。
Discussion