Как мне принудительно обновить фавикон?

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

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

Ответ 1

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

<link rel="icon" href="http://www.yoursite.com/favicon.ico?v=2" />

Ответ 2

Хорошо, после 10 минут wtf'ing, простой способ исправить это близок к тому, что у линейных птиц

  • Введите на www.yoursite.com/favicon.ico(или www.yoursite.com/apple-touch-icon.png и т.д.)
  • Нажмите enter
  • ctrl + f5
  • Перезапустить браузер (IE, Firefox)

Ответ 3

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

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

  • Наведите указатель мыши на вкладку
  • Щелкните правой кнопкой мыши
  • Выберите перезагрузку
  • Теперь ваш favicon будет обновлен.

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

Ответ 4

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

<link rel="SHORTCUT ICON" href="http://www.yoursite.com/favicon2.ico" />

Ответ 5

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

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

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

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

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

Ответ 6

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

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

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

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

Ответ 7

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

${user.home}/Library/Application Support/Google/Chrome/Default/Favicons 

Ответ 8

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

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

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

  • Посетите файл http://example.com/favicon.ico в своем браузере.
  • Удалите favicon.ico из вашего веб-сайта.
  • Посетите http://example.com/favicon.ico снова в браузере, убедитесь, что он отсутствует.
  • Загрузите новый на свой веб-сайт.
  • В браузере снова зайдите в http://example.com/favicon.ico, подтвердите его новым.

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

Ответ 9

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

Ответ 10

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

Ответ 11

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

Я не думаю, что ваши значки будут обновлены в ваших избранных, пока вы не просмотрите эту страницу, и предположите, что вы ранее очистили кеш браузеров.

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

Ответ 12

Для Internet Explorer существует другое решение:

  • Откройте Internet Explorer.
  • Выберите меню > инструменты > параметры Интернета.
  • Нажмите общий > временный интернет файл > "Настройки".
  • Нажмите кнопку "Просмотр файлов".
  • Найдите старый файл favicon.ico и удалите его.
  • Перезагрузите браузер (интернет-проводник).

Ответ 13

Попробуйте открыть в новой вкладке

Я пробовал многое из вышеперечисленного (сброс кеша, обновление, использование тега link и т.д.), я даже проверил файл .htaccess и reset переменную ExpiresByType.

Но это то, что окончательно сработало для меня как в Chrome (25.0.x), так и в Safari (6.0.1):

  • Очищающий кеш
  • Жесткая привязка значка к тегу <link>
  • Переход на mysite.com/favicon.ico
  • Открытие mysite.com на новой вкладке

(До шага 3 обновление на той же вкладке продолжало воспроизводить старый значок.)

Ответ 14

Для Chrome на macOS, если вы не хотите удалять всю базу данных Chrome favicon, как уже было предложено здесь, вы можете удалить только конфликтующие значки:

  • Закройте Chrome
  • Загрузите базу данных favicons (используя здесь sqlite):

sqlite3 ~/Library/Application\ Support/Google/Chrome/Default/Favicons

  1. Поиск файла, вызывающего проблемы.

select * from favicons where url = 'http://mysite.dev/favicon.ico';

  1. Если вы довольны результатом:

delete from favicons where url = 'http://mysite.dev/favicon.ico';


Альтернативно вы можете искать шаблон, который можно повторно использовать для удаления нескольких записей:


  1. Найдите несколько файлов, которые вызывают проблемы.

select * from favicons where url like 'http://mysite.dev%';

  1. И снова, если вы довольны тем, что это возвращает:

delete from favicons where url like 'http://mysite.dev%';


  1. Введите .exit и нажмите return для выхода из sqlite
  2. Перезапустить Chrome

Ответ 15

Когда вы запрашиваете значок из Google, вы можете посмотреть заголовки ответов.

Last-Modified: Fri, 09 Jan 2009 16:35:02 GMT
Date: Thu, 01 Dec 2010 00:00:01 GMT
Expires: Fri, 01 Dec 2011 00:00:01 GMT
Cache-Control: public, max-age=31536000
Age: 7

Если вы положите заголовок "Expires:" в ответ, клиентские браузеры повторно запросят значок после этой отметки времени. При активном развитии вы можете установить временную метку expires на вторую или две в будущем и всегда получать ее, хотя это плохой долгосрочный план.

Ответ 16

Поддержка Chrome favicon ошибочна - проигнорируйте этот ответ

Я написал этот ответ под впечатлением, что это то, что нужно, чтобы обновить значки в Google Chrome. Однако выясняется, что это работает только в течение первых пяти минут или около того, пока значок не получит безвозвратно потерянный в хронологической синхронизации Chrome.

Оригинальный ответ

Вам не нужно очищать кеш, перезагружать браузер, или переписывать свой HTML-код, вам просто нужно изменить URL-адрес значка, один раз, чтобы браузер забудет ранее сохраненный значок.

Предполагая, что вы определили свой значок с помощью элементов <link> на странице <head>, вы можете сделать это, запустив этот стандартный однострочный JS в консоли:

[].slice.call(document.querySelectorAll('head>link[rel$="icon"]')).map(function(ln){ln.href+='?v=2'});

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

Ответ 17

Недавно я восстановил свои закладки и искал способ восстановления FavIcons без посещения каждой страницы. Мои поиски привели меня к этой теме.

Для тех, кто в аналогичном случае просто загрузите аддон FAVICON RELOADER. После установки вы найдете команду "перезагрузить любимые значки" в раскрывающемся меню BOOKMARKS.

https://addons.mozilla.org/en-US/firefox/addon/faviconreloader/?src=api

Ответ 18

Если вы используете PHP, тогда вы также можете использовать эту строку.

<link rel="shortcut icon" href="http://www.yoursite.com/favicon.ico?v=<?php echo time() ?>" />

Он обновит ваш значок на каждой загрузке страницы.

Ответ 19

Если вам просто интересно отладить его, чтобы убедиться, что он изменился, вы можете просто добавить фиктивную запись в ваш файл /etc/hosts и нажать новый URL. Этот значок не будет кэшироваться уже, и вы можете убедиться, что новый работает.

За исключением изменения имени значка, вы не можете заставить своих пользователей получать новую копию

Ответ 20

Это работает для Chrome:

  • на Mac: удалить файл

    $ {user.home}/Library/Поддержка приложений /Google/Chrome/По умолчанию /Favicons

  • в Windows: удалить файлы

    C:\Users [имя пользователя]\AppData\Local\Google\Chrome\Данные пользователя \Default\Favicons C:\Users [имя пользователя]\AppData\Local\Google\Chrome\User Data\Default\Favicons-journal

источник

Ответ 21

Версия Chrome: 68.0.3440.106

Просто перезапустите Chrome (в адресной строке): chrome://restart

Ответ 22

Также убедитесь, что вы поместили полный URL изображения не только в его относительный путь:

http://www.example.com/images/favicon.ico

И не:

images/favicon.ico

Ответ 23

Это обходной путь для хромовой ошибки: измените атрибут rel на таблицу стилей! Сохраните исходную ссылку. Работает как шарм:

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

Ответ 24

Я знаю, что это действительно старый вопрос, но он также остается актуальным, хотя эти дни применимы только к мозилле. (Я не знаю, что делает explorer, потому что мы не кодируем нестандартные браузеры).

Chrome хорошо себя ведет, если в заголовке есть значок значка.

Хотя мозилла хорошо знает эту проблему, как обычно, они никогда не исправляют раздражающие мелочи. Даже через 6 лет.

Итак, есть два способа принудительного обновления значка с помощью firefox.

  • Попросите всех ваших клиентов удалить Firefox. Затем переустановите.

  • Вручную введите только домен в строке url - не используйте http или www просто домен (mydomain.com).

Это предполагает, что ваши записи ns включают разрешение только для имени домена.

Ответ 25

Вот как я справился с просто анимированным favicon и FireFox 3.6.13 (бета-версия). Вероятно, он будет работать и для других версий FireFox, сообщите мне, если это не так. Это в основном решение artlung, но также обращаясь к файлу .gif:

  • Я открыл программу FTP, загрузил файлы favicon.ico AND favicon.gif,
  • затем удалите их из файлов моего сервера.
  • Затем я открыл их в браузере, как предложил artlung: http://mysite.com/favicon.ico И http://mysite.com/favicon.gif Как только эти адреса загружены и отображено 404 страницы ошибок ( "страница не найдена" )
  • Я THEN загрузил оба файла обратно на мой сервер, и PRESTO - правильные значки были мгновенно отображены.

Ответ 26

Простой,

1: я не хочу возиться с кодами (ps, мой сайт-строитель не использует коды, он использует кнопку "загрузить файл", и он делает это сам)

2: Я попробовал CTRL + F5, и он не работает для меня так....

У меня есть решение:

IE: очистить всю историю браузера и файлы cookie, перейдя в настройки cog O

Chrome. Перейдите в меню в правом верхнем углу под X, которое выглядит как a =, затем перейдите к настройкам, истории, CLEAR BROWSING DATA и проверьте все применимые поля (я сделал историю, файлы cookie и пустые catche с самого начала)

Ответ 27

Если проблема продолжается, несмотря на применение некоторых шагов выше , попробуйте перезапустить сервер IIS. Надеюсь, это поможет...

Ответ 28

Просто измените это имя файла = 'favicon1.ico'

Ответ 29

1. Просто нажмите Ctrl + F5 вместе с вашей клавиатуры

  1. просто очистите историю перехвата браузера и перезагрузите веб-страницу, вы получите обновленный значок

  2. просто перезагрузите его в окне приветствия и вы получите обновленный favicon

Ответ 30

Пожалуйста, следуйте приведенным ниже инструкциям, чтобы изменить значок приложения:

  1. Добавьте ваш .ico файл в проект.
  2. Перейдите в angular.json и в этом "projects" → "architect" → "build" → "options" → "assets" и здесь сделайте запись для вашего файла значка. Обратитесь к существующей записи favicon.ico, чтобы узнать, как это сделать.
  3. Перейдите в index.html и обновите путь к файлу значка. Например,

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