8

動的に生成されたページ(具体的にはADF Facesページですが、これは関係ありません)にファビコンを追加するとします。結果のhtmlのタグを変更できません。そこで、サーブレット ヘッダーに http-header を追加しようとしました。ヘッダーを html head 要素と同じにしたい:

<link rel="shortcut icon" href="http://foo.com/favicon.ico">

私はこのように追加しています:

httpResponse.addHeader("Link", "<http://foo.com/favicon.ico>; rel=\"shortcut icon\"");

私のブラウザでは、応答として次のヘッダーが表示されます。

Link: <http://foo.com/favicon.ico>; rel="shortcut icon"

残念ながら、これは IE や Chrome では何の効果もありません。誰もが同じことを達成しようとしましたか? 私は何か間違ったことをしていますか?それはまったく機能するはずですか?

4

3 に答える 3

4

はい、2010 年 10 月以降、リンク ヘッダーはRFC 5988で定義された標準となっていますが、私が確認した唯一のリンク関係はスタイルシート用であり、一部のブラウザーでのみ機能しています。

参照: HTTP ヘッダー スタイルシート

@dragn が示唆していることは完全に実行可能であり、ブラウザが採用していない理由は仕様では理解できません。他にも、プリフェッチ、ブックマーク、用語集などの便利な関係がいくつかあります。最低限できることは、リンクが存在することをユーザーに通知し、ドロップダウンまたはメニューとして提供することです。おそらくプラグインは、ブラウザー ベンダーが混乱しているように見えるため、私たちがやりたいことをブラウザー ベンダーに示すために求められているものです。助言がありますか?

今のところ、この機能が利用可能になるのは 2020 年まで待たなければならないと思います。

于 2012-10-03T00:58:15.897 に答える
4

答えは、この方法は、まだ実装されていない提案された標準 (ドラフト) に依存しています (これを指摘してくれたSalman Aに感謝します)。それがうまくいったならそれは素晴らしいことですが。

于 2012-06-27T14:09:47.503 に答える
0

そうそう「ドラフト」..

とりあえず..

実際にどのように使用できるかを確認したい場合は、ここに例を示します( icompile.eladkarako.comから取得) 。

<ifModule mod_headers.c>
  Header set Link <http://icompile.eladkarako.com/favicon.ico>; REL="shortcut icon"; TYPE="image/x-icon"
  Header set Link <http://icompile.eladkarako.com/favicon.ico>; REL="icon"; TYPE="image/x-icon"
  Header set Link <http://icompile.eladkarako.com/img/apple-touch-icon.png>; REL="apple-touch-icon"; TYPE="image/png"; sizes="316x316"
</ifModule>

現在の Chromium/Google Chrome/Google Canary で動作します。

advance web-features(そして、スイッチをin に 設定した場合は確かにchrome://flags
于 2015-10-20T11:28:37.483 に答える