Добавление favicon через HTTP-заголовок

предположим, что я хочу добавить favicon на динамически сгенерированную страницу (в частности, страницу ADF Faces, но это не имеет значения). Я не могу изменить тег моего результирующего html. Поэтому я пытаюсь добавить http-заголовок в заголовок сервлета. Я хочу, чтобы мой заголовок был идентичен элементу 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. Кто-нибудь пытался добиться того же? Я делаю что-то не так? Это должно сработать?

3 ответов


и ответ: этот метод основан на предлагаемом стандарте (проекте), который еще не реализован (благодаря Салман В для указания на это). Хотя было бы здорово, если бы это сработало.


да заголовки ссылок были определены стандартом в RFC 5988 С октября 2010 года, но только ссылка отношении Я видел, что работа предназначена для таблицы стилей и только в некоторых браузерах.

Смотрите также: таблицы стилей заголовков HTTP

то, что предлагает @dragn, вполне жизнеспособно, и в спецификации, почему браузеры не принимают, вне меня. Есть некоторые другие полезные отношения, такие как предварительная выборка, закладка и глоссарий, чтобы назвать несколько. Самое меньшее, что они могут сделать, это уведомить Пользователя о существовании ссылок и предоставить его в виде раскрывающегося списка или меню. Возможно, плагин-это то, что требуется, чтобы показать поставщикам браузера, что мы хотим, чтобы он сделал, поскольку кажется, что они все путаются. Есть предложения?

на данный момент я думаю, что мы должны ждать до 2020 года, чтобы эта функция стала доступной, которая, кажется, Трент.


Да, да!"проект"..

в любом случае..

если вы хотите увидеть, как вы можете использовать его на практике, вот пример (взято из 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 на chrome://flags)