Могу ли я дать указание браузеру не искать значок?


19

У меня есть веб-сайт, который не имеет / не нуждается в значке.

Есть ли способ проинструктировать браузер не тратить запрос на поиск /favicon.ico?

Я имею в виду не фильтрацию журналов, а что-то на стороне клиента, например:

<link rel="shortcut icon" href="about:blank" />

Кажется, это работает, но я не в состоянии делать всесторонние тесты (и поисковые системы бесполезны).

Может ли кто-нибудь подтвердить, является ли это действительным методом, или предоставить подходящую альтернативу?

Обновление: при дальнейшем расследовании это не работает (по крайней мере, с Chromium 18 в нелокальном домене). Частичным решением является использование data:URL-адреса для обслуживания пустого изображения base64 ( пример здесь ):

<link href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" rel="icon" type="image/x-icon" />

Это работает, но имеет два недостатка:

  • Это может произойти сбой в браузерах, которые не поддерживают URL-адреса данных.
  • Это не приводит к значению favicon вообще - то есть скрывает значок браузера по умолчанию.

Вы видели этот вопрос на SO?
j0k

Нет, спасибо за ссылку. Исходя из комментария Макса «использовать пустой файл», мне интересно, если <link href="data:image/x-icon;" rel="shortcut icon" />это правильное решение - кажется, оно может работать (показывает браузер по умолчанию), но нужно проверить, как IE7 / другие реагируют на него.
Питер Боутон

Только что попробовал на IE8 и отображает значок по умолчанию
j0k

Хм, скрытый в неочевидной ссылке в ответе на этот вопрос, является связанным вопросом на SO с большим количеством ответов / комментариев - кажется, не что-то новое / полезное, но в случае, если я что-то упустил, вот ссылка во всяком случае .
Питер Боутон

3
[Возможно, стоит отметить, что сайты, которые обычно чрезвычайно обеспокоены производительностью, размером страницы, запросами и т. Д., И, возможно, имеют более веские причины, например. Google, Yahoo, по большей части, просто идут вперед, создают значок и переходят к более важным проблемам.]
Su '

Ответы:


9

Ну, я просто пошел и провел некоторое тестирование с помощью нескольких случайных браузеров, которые я установил, Wireshark и простой веб-страницы, содержащей тег

<link rel="shortcut icon" href="about:blank">

Вот результаты на данный момент:

  • Chromium 18.0 в Ubuntu Linux: работает. Нет запросов /favicon.ico, значок не отображается.

  • Google Chrome 21.0 на Windows XP: работает.

  • Firefox 15.0.1 в Ubuntu Linux: противоречивое поведение. Очевидно, что Firefox не показывает фавиконки и не делает запрос HTTP для /favicon.icoна первой странице загрузки. Тем не менее, когда страница посещается во второй раз, /favicon.icoзагружается и отображается.

  • Firefox 15.0 в Windows XP: несоответствующее поведение, как описано выше.

  • Opera 10.10 в Ubuntu Linux: не работает. Запрашивает /favicon.icoно не показывает.

  • Konqueror 4.8.4 для Ubuntu Linux: работает.

  • Rekonq 0.9.1 на Ubuntu Linux: Сломанный. Пытается запросить /about:blankс сервера.

  • Internet Explorer 8.0 в Windows XP: несовместим (?). Вначале казалось, что он работает, но /favicon.icoв какой-то момент его запросили, скорее всего, после того, как я зашел на другую страницу и использовал кнопку «Назад». Тестирование было несколько сложным из-за того, что по какой-то причине IE отказывается отображать мои значки тестирования. Требуется больше испытаний.

Другие заметки:

Браузеры обычно чертовски агрессивно кешируют иконки. Обычные методы очистки кэша браузера не всегда работают; Мне приходилось запускать браузеры с совершенно новыми изолированными профилями, чтобы получать постоянно повторяемые результаты. Примечательно, что по крайней мере, recq вернется к отображению значка (не по умолчанию) с другой страницы того же сайта, если он имеет один кэш.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.