Вопрос: Как заставить обновление favicon


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

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


1334


источник


Ответы:


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

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

1856



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

  1. Введите www.yoursite.com/favicon.ico (или www.yoursite.com/apple-touch-icon.png и т. Д.).
  2. От себя войти
  3. Ctrl + f5
  4. Перезапустить браузер (IE, Firefox)

777



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

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

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

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


198



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

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

52



Если вы используете 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') ?>" />

50



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

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

или...

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

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

затем запустите хром


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


36



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

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

26



Well, overhead is overhead, but yes, not too big.

Also, browsers are sometimes "greedy" about cached files. You could clear cache and/or restart your browser and may see the change. If that fails though...

My cheapo solution is to:

  1. Visit your file at http://example.com/favicon.ico in your browser.
  2. Delete the favicon.ico from your webroot.
  3. Visit http://example.com/favicon.ico again in a browser, verify it's missing.
  4. Upload new one to your webroot.
  5. Visit http://example.com/favicon.ico again in a browser, verify it's the new one.

If that sequence doesn't work, then something else is going on.


14