Sleipnirでルート直下にFavicon置いている環境で、一部のページだけにhtmlのヘッダのlinkタグで別のFaviconを表示させようとしたところ、どうやってもルート直下の方のFaviconを読み込んでしまって苦戦。
ただ、IEでは問題なく表示されるのできっとSleipnir側の問題と判断して、色々試してみたんですが、どうにもうまく行かない。
と言うか、自分しか使わないサイトでタブの見分けようにアイコン付けたかっただけだったので、Sleipnirの設定フォルダの「\caches\favicon」にあるキャッシュを細工して一時しのぎを行うことにしました。
ただ、この「\caches\favicon」フォルダにあるfaviconのキャッシュの命名ルールがわからなくてここでも苦戦。
桁数からMD5だろうと当たりをつけて調べ始めたんですが、キーがさっぱりわからず・・・
と言うか、ざっと考えつくだけでも
で、しばらく頑張ってみたんですが、どうも自力で見つけられそうな気配がなかったので、ネットで調べてみたところ、命名ルールを調べるヒントがありました。
アプロダ|Sleipnir Unofficial Extensions Center http://w5.abcoroti.com/~suec/up2/src/suec0430.zipこちらの[FaviconHashChecker.js]が便利です。
(つまり、ホストの方のキャッシュはプロトコルとかポートとか意識しないので、同じポートで開いている場合や、SSLと平文で別のサイトを表示する場合でも区別されないことになります。)
で、その調査をしながら上記のスクリプトで目的のアイコンキャッシュを作成して無事表示され一段落付いたのですが、その後、FireFoxでlinkタグを記載したサイトを開いてみたところ、こちらもやはり表示されず。
これはおかしいと思って、さらに調査したところ、サーバがちゃんとしたMIMEヘッダと送出してないことに気が付いたので「image/vnd.microsoft.icon」を送出するように変更。
でも改善無し(;´д`)ノ
もしかして、用意したFaviconの形式がおかしいかなぁと、さらに色々調べていた所、
「あれ? このソース、ヘッダに<link rel="SHORTCUT ICON" href="favicon.ico" />が二つ無い?」
しかも、後者はfaviconのURIに何も指定されていませんでした。
もしやと、後者を削除してみたところ、FireFoxでは問題なく表示されるようになりました。
これはと思い、いっぺんFaviconのキャッシュを削除したSleipnirでサイド試してみたところ、こちらもさっくりと表示されましたorz
つまり、IEはlinkの設定が二つあっても気にしなかったようですが、SleipnirとFirefoxは二つあると後者が有効になるようです。
もっと早く気が付け<自分(ノ `Д´)ノ===┻━┻
と言う訳で、今は何問題なく表示されるようになりました( ̄▽ ̄)ノ
そうそう、上記の件を調べている最中におもしろ記事を見かけたので合わせてメモしておきます。
ん? href 属性の値は URI…URI だから URL も含んでるよな…んじゃぁ URL スキームだと何でもいいんじゃないか?だったら data: スキーム 1 でも表示できなければオカシイんじゃないか?