У мене немає favicon.ico, але IE завжди робить запит на це.
Чи можна завадити браузеру робити запит на фавікон з мого сайту? Можливо, якийсь META-TAG у заголовку HTML?
У мене немає favicon.ico, але IE завжди робить запит на це.
Чи можна завадити браузеру робити запит на фавікон з мого сайту? Можливо, якийсь META-TAG у заголовку HTML?
Відповіді:
Спочатку скажу, що мати фавікон на веб-сторінці - це добре (як правило).
Однак це не завжди бажано, і коли-небудь розробникам потрібен спосіб уникнути зайвого навантаження. Наприклад, IFRAME запитає фавікон, не показуючи його. Найгірше, що в Chrome і Android IFRAME генерує 3 запити для фаворитів:
"GET /favicon.ico HTTP/1.1" 404 183
"GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 197
"GET /apple-touch-icon.png HTTP/1.1" 404 189
Далі використовується URI даних і їх можна використовувати, щоб уникнути підроблених запитів фавікону:
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
Довідки див. Тут:
Помилка / поведінка Chrome, ймовірно, буде виправлено у наступних версіях.
Ось подання про помилку для голосування:
ОНОВЛЕННЯ 1:
З коментарів (jpic) схоже, що Firefox> = 25 вже не любить вищевказаний синтаксис. Я протестував на Firefox 27, і він не працює, поки він все ще працює на Webkit / Chrome.
Тож ось новий, який повинен охоплювати всі останні веб-переглядачі. Я тестував Safari, Chrome і Firefox:
<link rel="icon" href="data:;base64,=">
Я залишив ім'я "ярлик" у значенні атрибута "rel", оскільки це лише для старих IE, а версії IE <8 також не люблять dataURI. Не тестується на IE8.
ОНОВЛЕННЯ 2:
Якщо для підтвердження документа HTML5 вам потрібен документ, скористайтеся цим:
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=">
здається, вирішує проблему.
data:image/png;base64,iVBORw0KGgo=
в браузері, зберегти його як favicon.ico
ака. порожній файл PNG і зберігайте його в корені веб-сайту. Правильно?
Просто додайте наступний рядок до <head>
розділу вашого HTML-файлу:
<link rel="icon" href="data:,">
Особливості цього рішення:
href="#"
)reserves space
?
Я вірю, що я це бачив (Я не перевіряв його і не використовував його особисто):
<link rel="shortcut icon" href="#" />
Хтось мав подібний досвід?
Редагувати:
Я щойно випробував вищевказаний фрагмент, і при вимушеному повному оновленні у Fiddler жодних запитів на фавікон не було. Я протестував IE8 (режим Compat як IE7 стандартів) та FF 3.6.
href
посилання на якийсь уже завантажений статичний (кешований) ресурс (наприклад, файл css або скрипт) - щоб переконатися, що динамічна (не кешована) сторінка не надходить двічі. (Просто для безпеки, оскільки href="#"
технічно вказує на поточну веб-сторінку).
Ви не можете. Все, що ви можете зробити, - зробити це зображення якомога меншим і встановити деякі заголовки недійсності кешу ( Expires
, Cache-Control
) далеко в майбутньому. Ось що Yahoo! має сказати про favicon.ico запити.
Ви можете використовувати .htaccess або директиви сервера, щоб заборонити доступ до favicon.ico, але сервер надішле веб-переглядачу заборонений доступ до доступу, і це все ще уповільнює доступ до сторінки.
Ви можете зупинити перегляд веб-переглядача favicon.ico, коли користувач повернеться на ваш сайт, отримавши його, щоб залишитися в кеші браузера.
По-перше, надайте невелике зображення favicon.ico, воно може бути порожнім, але якомога меншим. Я зробив чорний з білим під 200 байт. Потім, використовуючи директиви .htaccess або сервер, встановіть файл Expires заголовка на місяць або два в майбутньому. Коли той самий користувач повернеться на ваш сайт, він буде завантажений з кешу браузера, і жоден запит не буде переходити на ваш сайт. Немає більше 404-х у серверних журналах.
Якщо у вас є контроль над повним сервером Apache або, можливо, віртуальним сервером, ви можете це зробити: -
Якщо коренем документа сервера є скажіть / var / www / html, додайте це до /etc/httpd/conf/httpd.conf:-
Alias /favicon.ico "/var/www/html/favicon.ico"
<Directory "/var/www/html">
<Files favicon.ico>
ExpiresActive On
ExpiresDefault "access plus 1 month"
</Files>
</Directory>
Тоді один favicon.ico буде працювати для всіх віртуальних розміщених сайтів, оскільки ви його створюєте. Він буде черпати з кешу браузера протягом місяця після відвідування користувачів.
Для .htaccess цей звіт працює (не перевіряється мною): -
AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/x-icon "access plus 1 month"
Дуже просте рішення ввести код нижче у свій .htaccess
. У мене було те саме питання, і це вирішує мою проблему.
<IfModule mod_alias.c>
RedirectMatch 403 favicon.ico
</IfModule>
Довідка: http://perishablepress.com/block-favicon-url-404-requests/
З нашого досвіду, коли Apache переходив на запит favicon.ico, ми прокоментували додаткові заголовки у файлі .htaccess.
Наприклад, у нас встановлений заголовок X-XSS-захисту "1; mode = block"
... але ми заздалегідь забули судо заголовки a2enmod. Коментуючи надсилання додаткових заголовків, ми вирішили нашу проблему favicon.ico.
У нас також було створено декілька віртуальних хостів для розробки, і лише з помилкою 500 внутрішніх помилок сервера під час використання http: // localhost та отримання /favicon.ico. Якщо ви запустите "curl -v http: //localhost/favicon.ico " і отримаєте попередження про те, що ім'я хоста не міститься в кеш-пам'яті резолюції або щось подібне до цього, ви можете виникнути проблеми.
Це може бути настільки ж просто, як не витягувати (ми це намагалися, і це не спрацювало, оскільки наша першопричина була іншою) або шукати директиви в apache2.conf або .htaccess, які можуть спричиняти дивні 500 повідомлень про помилки внутрішнього сервера.
Ми виявили, що це не вдалося так швидко, що в журналах помилок Apache нічого не було корисного і витратили цілий ранок, змінюючи дрібниці тут і там, поки ми не вирішили проблему встановлення додаткових заголовків, коли ми забули завантажувати mod_headers!
Іноді ця помилка виникає, коли в HTML є якийсь коментований код і браузер намагається щось шукати. Як і в моєму випадку, я коментував код для веб-форми в колбі, і я отримував це.
Провівши 2 години, я виправив це такими способами:
1) Я створив нове середовище python, а потім він кинув помилку на коментований рядок HTML, до цього мене лише викинула помилка 'GET /favicon.ico HTTP / 1.1 "404'
2) Іноді, коли у мене був дублікат коду, як-от файл python, існуючий з тим самим іменем, тоді також я бачив цю помилку, спробуйте також видалити їх
Ви можете використовувати
<link rel="shortcut icon" href="http://localhost/" />
Таким чином, його насправді не вимагатимуть із сервера.