Нужно ли включать <link rel = «icon» href = «favicon.ico» type = «image / x-icon» />?


205

Я не включил следующую строку кода в тег head, однако мой значок все еще отображается в моем браузере:

<link rel="icon" href="favicon.ico" type="image/x-icon" />

Какова цель включения этого?

Ответы:


174

Если вы не вызываете favicon, favicon.icoвы можете использовать этот тег для указания фактического пути (если он у вас есть в images/каталоге). Браузер / веб-страница ищет favicon.icoв корневом каталоге по умолчанию.


3
или если у вас нет favicon.ico в корневой папке, но, например, в папке активов
Upvote

122

На самом деле вы должны сделать и то, и другое, чтобы все браузеры нашли значок.

Называя файл «favicon.ico» и помещая его в корень вашего сайта, метод «не рекомендуется» W3C:

Способ 2 (не рекомендуется): размещение значка в предварительно определенном URI
. Второй способ указания значка основан на использовании предварительно определенного URI для идентификации изображения: «/ favicon», которое относится к корню сервера. Этот метод работает, потому что некоторые браузеры были запрограммированы на поиск значков с использованием этого URI.
W3C - Как добавить иконку на свой сайт

Поэтому, чтобы охватить все ситуации, я всегда делаю это в дополнение к рекомендованному способу добавления атрибута rel и указания его на тот же файл .ico.


8
Да, это более правильный ответ. Нет никаких стандартов, связанных с простым помещением favicon.icoв корень, но большинство браузеров запрашивают указанный файл автоматически по историческим причинам.
Фабрисио Мате

10
Правильная причина для этого не потому, что он работает в некоторых ситуациях , а потому, что лучший метод не работает в некоторых ситуациях
Джаспер

2
Любопытно, что realFaviconGenerator рекомендует не объявлять значок в заголовке HTML.
Дан Даскалеску

7
Internet Explorer изобрел фавикон и искал его в корне. AFAIK, все браузеры делают это. Вот почему я рекомендую поместить favicon.ico в корень, потому что в противном случае он вернет 404, и большинство систем не кеширует это ... поэтому он продолжает запрашивать его. Поместите иконку туда, и она будет кешироваться правильно.
Стейн де Витт

50

Я использую его по двум причинам:

  1. Я могу принудительно обновить значок, добавив, например, параметр запроса ?v=2. как это: <link rel="icon" href="https://stackoverflow.com/favicon.ico?v=2" type="image/x-icon" />

  2. В случае, если мне нужно указать путь.


Круто, наконец-то понял, почему это не показывается!
whamsicore

Я уверен, что это была просто опечатка, но у вас есть относительная ссылка, то есть она не будет работать, если все ваши страницы не находятся на верхнем уровне или у вас нет файла favicon.ico в каждом подкаталоге.
Крис Когдон,

К сведению более поздних читателей, комментарий Криса Когдона был исправлен в редактировании «9 сентября 16 в 5:05», поэтому больше не проблема
Дарин

13

Простое добавление его в корневую папку работает по моде, но я обнаружил, что если мне нужно изменить значок, для обновления может потребоваться несколько дней ... даже обновление кэша не помогает.


Не забудьте Ctrl-C и перестроить.
Джейсон Гласс

9

Многие люди устанавливают путь к файлам cookie в /. Это приведет к тому, что каждый запрос favicon будет отправлять копии файлов cookie сайтов, по крайней мере, в Chrome. Адресация избранного в вашем домене без файлов cookie должна исправить это.

<link rel="icon" href="https://cookieless.MySite.com/favicon.ico" type="image/x-icon" />

В зависимости от того, сколько трафика вы получаете, это может быть наиболее практичной причиной для добавления ссылки.

Информация о настройке домена без файлов cookie:

http://www.ravelrumba.com/blog/static-cookieless-domain/

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