Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

HTML/css Java JSP/Servlet

JSPでcssが適用されない(Resouce interpreted as Stylesheet but transferred with MIME type)事象のトラブルシューティング記録

投稿日:2021年4月19日 更新日:

<目次>

(1) JSPでcssが適用されない(Resouce interpreted as Stylesheet but transferred with MIME type)事象のトラブルシューティング記録
 (1-1) 発生状況・エラーメッセージ
 (1-2) 原因
 (1-3) 対処
 (1-4) エラーからの学び

(1) JSPでcssが適用されない(Resouce interpreted as Stylesheet but transferred with MIME type)事象のトラブルシューティング記録

(1-1) 発生状況・エラーメッセージ

JSPに正しくcssを読み込んでいるにも関わらず、cssが正しく適用されない事象でした。

(エラーメッセージ)

Resource interpreted as Stylesheet but transferred with MIME type text/html: “[cssのパス]".
 
実際に開発者ツール(F12)等でネットワークトラフィックを見ても、cssの読み込み自体は正常に出来ていました。

 

(図111)cssは読み込めている

しかし、エラーメッセージにも書かれている通り、MIMEタイプが指定されているとメッセージが出ており、実際にレスポンスヘッダーには「Content-Type: text/html;~」となっており、想定していた「text/css;」にはなっていませんでした。

 

●レスポンスヘッダーの「Content-Type」
Content-Type: text/html;charset=UTF-8
(図112)

目次にもどる

(1-2) 原因

原因はフィルタークラスのプログラムで意図せず「ContentType」の設定をしていた事が原因でした。

response.setContentType("text/html; charset=UTF-8");
 
フィルタークラスはデフォルトではHTTPリクエストの前後で実行されるため、cssを読み込むリクエストに対しても意図せず「ContentType」がセットされてしまっていました事が原因でした。
 

(1-3) 対処

前述の通り、フィルタークラスにて「ContentType」をセットしていたのが原因のため、そこをコメントアウトする事で正常に動作しました。

(修正後)setContentTypeをコメントアウト

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
	request.setCharacterEncoding("UTF-8");
	//# ↓コメントアウト
	//response.setContentType("text/html; charset=UTF-8");
	chain.doFilter(request, response);
}
(図131)
上記の修正を適用した結果、cssが正しくJSP画面に適用されるようになりました。

(図132)

目次にもどる

(1-4) エラーからの学び

フィルタークラスは共通的に適用できる利便性がある反面、意図しない処理に対してもフィルターが適用されてしまう危険もあるため、本当に共通的に適用したい設定に絞って記述をし、それ以外は個別に記述していく必要がある事を学びとして感じました。

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-HTML/css, Java, JSP/Servlet

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Javaでdouble型での誤差を対処する方法について+サンプルプログラムも紹介

(1) Javaでの誤差の対処法  (1-1) 対処が必要なケース  (1-2) 対処の方法   (1-2-1) BigDecimalクラスでの対処   (1-2-2) int型を優先的に使い対処   …

JSP Servletでセッションの有効期限を設定する方法

<目次> (1) JSP Servletでセッションの有効期限を設定する方法  (1-1) セッションの有効期限設定の概要  (1-2) 方法1:web.xmlに追記する方法  (1-3) 方法2:プ …

JNDIとは?JDBCとの違いやメリット・デメリットについてもご紹介

<目次> (1) JNDIとは?JDBCとの違いやメリット・デメリットについてもご紹介  (1-1) JDBCとは?  (1-2) JNDIとは?   (1-2-1) 概要   (1-2-2) JND …

オープンアドレス法をJavaで実装したプログラムのサンプルをご紹介

<目次> (1) オープンアドレス法をJavaで実装したプログラムのサンプルをご紹介  (1-1) オープンアドレス法とは  (1-2) Javaのサンプルプログラムの全体像  (1-3) Javaの …

木構造の探索における計算量の違いや木構造の種類について(B木/二分木/2-3探索木)

<目次> (1) 木構造の探索における計算量の違いや木構造の種類について(B木/二分木/2-3探索木)  (1-1) 木構造について  (1-2) 「B木」構造  (1-3) 「二分木」構造  (1- …

  • English (United States)
  • 日本語
Top