Как мне принудительно обновить фавикон? - PullRequest
1469 голосов
/ 05 февраля 2010

У меня есть приложение Grails, работающее локально с использованием собственного tomcat, и я только что изменил значок на новый.Проблема в том, что я не вижу его ни в одном браузере.Появляется старый значок, или я вообще не получаю значок, но не мой новый.Я не думаю, что это проблема Грааля как таковая, скорее проблема с иконками.

Что должно случиться с иконками?Как они должны работать?У меня есть многочисленные закладки в моем браузере, которые имеют неправильные значки, и они никогда не обновляются.Как заставить сервер / браузер перестать их кэшировать?Кажется довольно глупым всегда кэшировать их, учитывая, что они обычно только 16x16.Почему бы просто не загружать их при каждом посещении страницы?Это не совсем огромные накладные расходы.

Ответы [ 31 ]

2010 голосов
/ 19 августа 2011

Чтобы обновить значок сайта, вы можете заставить браузеры загружать новую версию, используя тег ссылки и строку запроса в вашем имени файла. Это особенно полезно в производственных средах, чтобы пользователи могли получать обновления.

<link rel="icon" href="http://www.yoursite.com/favicon.ico?v=2" />
803 голосов
/ 09 марта 2011

Ладно, после 10 минут работы, простой способ исправить это - это почти что у lineofbirds

  1. Введите www.yoursite.com/favicon.ico (или www.yoursite.com/apple-touch-icon.png и т. Д.)
  2. Нажмите введите
  3. * Ctrl 1011 * + f5
  4. Перезапустить браузер (IE, Firefox)
255 голосов
/ 23 сентября 2014

Этот ответ еще не был дан, поэтому я решил опубликовать его. Я просмотрел всю сеть и не нашел хорошего ответа для тестирования значков в локальной разработке.

В текущей версии Chrome (для OSX), если вы выполните следующее, вы получите мгновенное обновление иконки:

  1. Наведите курсор на вкладку
  2. Правый клик
  3. Выберите перезагрузить
  4. Ваш значок теперь должен быть обновлен

Это самый простой способ, который я нашел, чтобы обновить фавикон локально.

54 голосов
/ 05 февраля 2010

Переименуйте файл favicon и добавьте HTML-заголовок с новым именем, например:

<link rel="SHORTCUT ICON" href="http://www.yoursite.com/favicon2.ico" />
53 голосов
/ 11 июня 2014

Если вы используете PHP, вы также можете использовать MD5-Hash favicon в качестве строки запроса:

<link rel="shortcut icon" href="favicon.ico?v=<?php echo md5_file('favicon.ico') ?>" />

Таким образом, Фавикон всегда будет обновляться после его изменения.

Как указано в комментариях, вы также можете использовать дату последнего изменения вместо MD5-Hash для достижения того же результата и немного сэкономить на производительности сервера:

<link rel="shortcut icon" href="favicon.ico?v=<?php echo filemtime('favicon.ico') ?>" />
49 голосов
/ 28 сентября 2015

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

  1. Закройте браузер. Убедитесь, что больше не запущены процессы браузера (например, проверьте диспетчер задач на chrome.exe или firefox.exe).
  2. Перейдите туда, где ваш браузер хранит пользовательские файлы:
    • Для Chrome перейдите в каталог данных Chrome .
    • Для Firefox перейдите в папку профиля Firefox .
  3. Удалить кеш избранного.
    • Для Chrome удалите Favicons и Favicons-journal
    • Для Firefox удалите favicons.sqlite

Это почти наверняка сработает. Если нет:

  • Возможность 1: обновление вашего браузера изменило работу кеша favicon. Пожалуйста, отредактируйте этот ответ с новыми инструкциями.
  • Возможность 2: Ваша проблема с favicon не имеет ничего общего со сверхагрессивным кэшированием. Вместо этого может возникнуть проблема с загрузкой ресурсов - с помощью Инструментов разработчика убедитесь, что новый значок загружается правильно.
29 голосов
/ 25 октября 2013

В Chrome на Mac OS X можно удалить файл с кешем favicon

${user.home}/Library/Application Support/Google/Chrome/Default/Favicons 
16 голосов
/ 05 февраля 2010

Ну, накладные расходы - это накладные расходы, но да, не слишком большие.

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

Мое дешевое решение:

  1. Посетите ваш файл по адресу http://example.com/favicon.ico в вашем браузере.
  2. Удалите favicon.ico из своего корня.
  3. Посетите http://example.com/favicon.ico еще раз в браузере, убедитесь, что он отсутствует.
  4. Загрузите новый файл в свой webroot.
  5. Снова зайдите в браузер http://example.com/favicon.ico, убедитесь, что он новый.

Если эта последовательность не работает, то происходит что-то еще.

14 голосов
/ 05 февраля 2010

В зависимости от браузера они обрабатываются по-разному, но обычно я обнаруживаю, что иду на страницу сайта по умолчанию и выполняю жесткое обновление. CTRL + F5 , обычно обновляется.

10 голосов
/ 09 июля 2014

НА MAC: + Shift - R или удерживайте нажатой Ctrl и нажмите кнопку перезагрузки в браузере.

...