たちまち。

即席で役に立つこと。

【AccelPlatform】システム管理者画面だけ静的ファイル(js等)が読み込めない

WebサーバにIISを使用した環境において、システム管理者画面(system/login)にアクセスすると、画像などが読み込めずに崩れている。

こんな感じ。

f:id:aposke:20210114154918p:plain

こういう場合、静的ファイルが配置できてないとか、設定の向き先が間違えていることが多いのだが、一般ユーザ(/login)の画面については問題ないしログインもできる。

静的ファイルがなぜ読み込めてないかというと、Chromeの開発者ツールで確認する限り、ポート番号8080のアドレスにある静的ファイルを見に行こうとしている。

つまり、IISにて静的ファイルを関連付けるルールよりも先に、Resin(8080)へURL書き換えするルールが優先されてしまっている。

しかし、一般ユーザはログインできるわけだから設定に誤りがあるわけではない。imart/loginと、imart/system/loginで何かが異なるのか。

久しぶりにハマった。原因は何なのか。

解決方法

原因はベースURLにあった。

server-context-config.xmlのベースURLがコメントアウトされていたが、指定することで正常に画面表示された。

システム管理画面についてはserver-context-config.xmlにあるベースURLを見る仕様のようで、これを定義していないとURLが正しいものにならないようだ。

今回はバーチャルテナント環境で2つテナントを構築しており、ベースURLはテナント毎に設定していたからserver-context-config.xmlは未指定で大丈夫と思ったものの、システム管理者画面については影響があるので注意されたし。