🐜

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系以降である。
https://rubyonrails.org/maintenance

この記事が誰かの役に立つ可能性は低いと思いたいけど、役に立ったら嬉しい。
古いバージョンのアップデートをするということはそれだけそのアプリケーションは長く運用されてきたわけで、サービスとしてなかなか幸運なことでもある。

Discussion