У меня есть веб-сайт, который не имеет / не нуждается в значке.
Есть ли способ проинструктировать браузер не тратить запрос на поиск /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 вообще - то есть скрывает значок браузера по умолчанию.
<link href="data:image/x-icon;" rel="shortcut icon" />
это правильное решение - кажется, оно может работать (показывает браузер по умолчанию), но нужно проверить, как IE7 / другие реагируют на него.Ответы:
Ну, я просто пошел и провел некоторое тестирование с помощью нескольких случайных браузеров, которые я установил, Wireshark и простой веб-страницы, содержащей тег
Вот результаты на данный момент:
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 вернется к отображению значка (не по умолчанию) с другой страницы того же сайта, если он имеет один кэш.
источник