前提・実現したいこと
・webアプリでファビコンを表示させたい。
・Chrome, Firefoxでは正常に表示されている。
・IEでも特定の場合を除いて正常に表示されている。
発生している問題・エラーメッセージ
IEにおいて以下の場合にのみファビコンが表示されず、tomcatの猫のファビコンになってしまう。
- web.xmlの<error-page>タグでエラーページを定義し、サーブレットでHttpServletResponse#sendError(404);等を実行してエラーページを表示する。
※上記の場合でもChrome, Firefoxだとファビコンが表示されます。
※IEでもRequestDispatcher#forward();でページ遷移を行った場合はファビコンが表示されます。
該当のソースコード
htmlは2パターン検証しています。
- error.html(png)
html
1<link href="http://localhost:8080/TESTAPP/img/favicon.png" rel="icon" type="image/png">
- error.html(ico)
html
1<link href="http://localhost:8080/TESTAPP/img/favicon.ico" rel="icon" type="image/x-icon">
- サーブレット
java
1protected void doGet(HttpServletRequest request, HttpServletResponse response) 2 throws ServletException, IOException { 3 if (true) { 4 // エラーを発生させる場合 5 response.sendError(HttpServletResponse.SC_NOT_FOUND); 6 } else { 7 // 通常のページ遷移を行う場合 8 String forward = "/WEB-INF/html/error.html"; 9 RequestDispatcher rd = request.getRequestDispatcher(forward); 10 rd.forward(request, response); 11 } 12}
- web.xml
xml
1 <error-page> 2 <error-code>404</error-code> 3 <location>/WEB-INF/html/error.html</location> 4 </error-page>
試したこと
- 上記ソースコードでChrome, Firefox, IEでページ遷移を行いファビコンが表示されるか検証した。
- Chrome, Firefoxはエラーページを表示した場合もforwardで遷移した場合もファビコンが表示された。
- IEはforwardで遷移した場合はファビコンが表示されたがエラーページを表示した場合にtomcatの猫の画像になってしまった。
補足情報(FW/ツールのバージョンなど)
- Chrome(72.0.3626.109)
- Firefox(61.0.1)
- IE(11.316.17763.0)
- tomcat(7.0.78)
アドバイスいただけると幸いです。
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー