この記事は、 LPS-88702に記載されている Microsoft Internet Explorer 11 (IE11) に固有の既知の問題について説明します。 IE11では、Webサイトのページに移動した後、ファビコンが常にIE11用のクラシックテーマのファビコンとして表示されるようになります。 これは、 FaviconServlet.java が、現在のテーマを使用するための themeDisplay が存在しないため、常に LayoutSet を使用していることに起因します。
この現象が起こるためには、以下の条件が揃っている必要があります:
- カスタムファビコン付きカスタムテーマを採用
- Microsoft Internet Explorer 11では、ウェブサイトのナビゲーションが発生します。
調査の結果、この問題の根本的な原因はIE11内にあることが判明しました。
解像度
ステータス回避策あり
Mozilla FirefoxやGoogle Chromeなどの他のブラウザでも同様の問題は発生しませんので、定期的にこの問題を経験される方は、他のブラウザをご利用ください。
他のブラウザを使用することができない場合は、以下の3つの回避方法のいずれかを行ってください:
サードパーティーの設定や高可用性を扱う変更であるため、これらの回避策を取ることは、ご自身の判断で行ってください。
-
LDS ビルド gradle を使用して生成されたテーマ: portal_normal.ftl ファイル (src/main/webapp/templates/portal_normal.ftl) のヘッドタグ内に以下の 2 行のコードを追加し、(src/main/webapp/images/favicon.ico) の下にカスタム favicon を追加すると、IE11 はそれぞれの favicon を表示し始めます。
NPM を使用して生成されたテーマ:次の 2 行のコードを portal_normal.ftl ファイル (src/templates/portal_normal.ftl) の head タグ内に追加し、(src/images/favicon.ico)の下にカスタム ファビコンを追加します。<link rel="icon" href="${images_folder}/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="${images_folder}/favicon.ico" type="image/x-icon" />注:この回避策は、Liferayがアプリケーションサーバーのルートコンテキストに存在する場合にのみ機能します。
- IE11がデフォルトで使用している不正なファビコンを、カスタムファビコンに置き換える。 デフォルトのファビコンを置き換える場所は、アプリケーションサーバーによって異なる場合があります。
- ファビコンの置き換えをWebサーバー上で処理する、つまり、すべてのリクエストをリダイレクトする:
"{protocol}://{host}:{port}/favicon.ico"
宛先
"{protocol}://{host} : {port} / {context-path} /o/favicon"
追加情報
マイクロソフトの詳細については、以下のリンクをご参照ください:
- window.history.pushState: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18341040/を使用するとFaviconが消えてしまう。
- IEは、サーバーのルートからfavicon.icoファイルを拾ってきます。 https://blogs.msdn.microsoft.com/ieinternals/2013/09/07/fun-with-favicons/