1. ホーム
  2. ジャワ

リソースはスタイルシートとして解釈されるが、MIMEタイプはapplication/octet-streamで転送される。

2022-02-22 18:32:30

先日、spring bootを中心にプロジェクトをリファクタリングし、テストを容易にするためにswaggerを追加するつもりでしたが、ビルドの過程で以下のようにcssファイルが読み込めないことがわかりました。



ページの読み込みはできたのですが、cssスタイルの読み込みがうまくいかず、コンソールメッセージを見たところ、以下のようなプロンプトが表示されました。


css スタイルの MIME タイプが text/css ではなく application/octet-stream になっていることがわかるので、フィルターで css を除去したのかと思ったが、パケットキャプチャではリターンに問題はなかったので、あとはレスポンスで MIME タイプを設定した場合に問題があるとしか思えない状況で、徐々にデバッグを進めていくと、以下のことがわかった。
PathExtensionContentNegotiationStrategy.java が css に従った mimeType の取得に失敗しています。


mimeTypeの型を取得するためにfileTypeMap "mimetype from org/springframework/mail/javamail/mime.types" を発見、このファイルはspring-context-supportパッケージ内にあり、pom.xmlがこのパッケージを参照していないことを確認、このパッケージの依存関係を追加したら問題は解決しました。