Redmine 6.1.2 を 7.0.0 に上げたら,表示がおかしくなった。
どうもアセットのパスの問題のようだ。
調査の過程
とりあえず「なんか色がおかしい」と思った。
ウェブコンソールで調べると,たとえばヘッダーに
#header {
color: var(--oc-white);
}
なんてスタイルが当たっているのだが,--oc-white なんて変数は設定されていない。
これがどこで設定されているはずなのかを調べると open-color.css であるらしい。
そういうファイルは確かに存在している。
なぜ読み込めてないのか。
この CSS は,application.css において
@import url("/assets/open-color.css");
として読まれるはずのようだ。
ん? 絶対パス? これがどうも怪しいな。
運用中の Redmine サイトは
https://example.net/issues/
といった形のサブディレクトリー運用をしていた。
assets:precompile する時に環境変数 RAILS_RELATIVE_URL_ROOT=/issues を渡していた。
それで問題なかった。
ところが Redmine 7.0 はダメぽい。
えーと,なんでだ? ←イマココ
追記:2026-08-05
試しに application.css において
-@import url("/assets/open-color.css");
+@import url("assets/open-color.css");
と相対パスに変え,
rails assets:precompile RAILS_ENV=production RAILS_RELATIVE_URL_ROOT=/issues
してみたら,open-color.css が読み込めてない問題は直った。
やっぱりそこだったのか。
ただ,何かを @import している箇所は他にもいろいろある。
また,画像やフォントを url( ) で指定している箇所もいろいろある。
面倒なので手で直す気がしない。
コレ要するにバグなんじゃね?
つかサブディレクトリー運用のことは考えてなかった,と。