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

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

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

30 ответов


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

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

хорошо, после 10 минут wtf'ING, простой способ исправить это близко к lineofbirds

  1. тип в www.yoursite.com/favicon.ico (или www.yoursite.com/apple-touch-icon.png и т. д.)
  2. пуш enter
  3. ctrl+Ф5
  4. перезапустить браузер (IE, Firefox)

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

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

  1. наведите курсор на вкладку
  2. Щелкните Правой Кнопкой Мыши
  3. выберите "перезагрузить"
  4. ваш favicon теперь должен быть обновлен

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


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

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

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

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

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

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

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

Если в windows и с помощью chrome, выйти из панели задач (Ctrl+Alt + Delete) и убить все экземпляры, а затем перейти к...

C:\Users\your_username\AppData\Local\Google\Chrome\User Data\Default

или...

%appData%/../Local/Google/Chrome/User Data/Default

и удалить файлы Favicons-journal, Favicons

затем запустите chrome


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


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

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

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

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

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

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

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


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


для Internet Explorer есть еще одно решение:

  1. откройте Internet explorer.
  2. выберите меню > Инструменты > Свойства обозревателя.
  3. нажмите общие > временные файлы интернета > кнопка" Настройки".
  4. Нажмите кнопку" просмотр файлов".
  5. найдите свой старый favicon.ICO файл и удалить его.
  6. перезапустите браузер (internet explorer).

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

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

ваш веб-браузер не будет выходить в интернет, чтобы проверить наличие нового favicon самостоятельно... слава Богу.


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


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

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

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

  1. кэш
  2. жесткая связь фавикона с <link> tag
  3. перейти к mysite.com/favicon.ico
  4. Открытие mysite.com in новая вкладка

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


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

  1. Выход Из Chrome
  2. загрузите базу данных 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

когда вы запрашиваете favicon от 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 на секунду или две в будущем и всегда иметь ее, хотя это плохой долгосрочный план.


поддержка фавикона Chrome глючит-игнорируйте этот ответ

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

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

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

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

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

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


недавно я восстановил свои закладки и искал способ восстановить фавиконы, не посещая каждую страницу. Мои поиски привели меня к этой теме.

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

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


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

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

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


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

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


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

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


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

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

и

images/favicon.ico

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

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

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

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

  1. У всех ваших клиентов удалить firefox. Затем переустановите.

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

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


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

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

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

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

    C:\Users[пользователя]\AppData\местные\Гугл\Хром\пользовательские данные\по умолчанию\фавиконок C:\Users[пользователя]\AppData\местные\Гугл\Хром\пользовательские данные\по умолчанию\фавиконок-журнал

источник


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

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

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


простой

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

2: я пробовал CTRL+Ф5 и это не работает для меня так....

У МЕНЯ ЕСТЬ РЕШЕНИЕ:

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

Chrome: перейдите в меню в правом верхнем углу под X, которое выглядит как A = , затем перейдите в настройки, историю, Очистить данные просмотра и отметьте все поля, которые применяются (я сделал историю, куки и очистить catche с начала времени)


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


Версия Chrome: 68.0.3440.106

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


Саймон, Я полагаю, есть причина, по которой ни один из других ответов пока не принят. Так я верю этому может тем не менее, проблема Grails - особенно, если вы используете "плагин ресурсов".

Если ваши плагины предоставляют favicon (что - нелогично - многие делают), они могут переопределить тот, который вы хотели использовать-учитывая, что ваш находится в самом плагине.

Если удаление favicon из всех ваших плагинов временно решает проблему, то вы очень вероятно, испытывая это:

http://jira.grails.org/browse/GPRESOURCES-134


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