Как принудительно обновить фавикон?
У меня есть приложение Grails, работающее локально, используя свой собственный tomcat, и я только что изменил favicon на новый. Проблема в том, что я не вижу его ни в одном браузере. Появляется старый фавикон, или я вообще не получаю никакого фавикона, но не мой новый. Я не думаю, что это проблема Грааля как таковая, скорее проблема с фавиконами.
Что должно произойти с фавиконок? Как они должны работать? У меня есть множество закладок в моем браузере, которые имеют неправильные значки, и они никогда не кажется, чтобы освежиться. Как заставить сервер / браузер прекратить их кэширование? Кажется довольно глупым всегда кэшировать их, учитывая, что они обычно только 16x16. Почему бы просто не загружать их с каждым посещением страницы? Это не совсем огромные накладные расходы.
30 ответов:
чтобы обновить фавикон вашего сайта, вы можете заставить браузеры загружать новую версию, используя тег link и строку запроса в вашем имени файла. Это особенно полезно в производственных средах, чтобы убедиться, что ваши пользователи получают обновление.
<link rel="icon" href="http://www.yoursite.com/favicon.ico?v=2" />
хорошо, после 10 минут wtf'ING, простой способ исправить это близко к lineofbirds
- тип в www.yoursite.com/favicon.ico (или www.yoursite.com/apple-touch-icon.png и т. д.)
- Push введите
- ctrl+f5
- перезагрузить браузер (IE, Firefox)
этот ответ еще не был дан, поэтому я подумал, что опубликую его. Я посмотрел по всему интернету и не нашел хорошего ответа для тестирования фавиконов в локальной разработке.
в текущей версии chrome (на OSX) если вы сделаете следующее, Вы получите мгновенное обновление favicon:
- наведите курсор на tab
- Щелкните Правой Кнопкой Мыши
- выберите "перезагрузить"
- ваш фавикон теперь должен быть обновлен
Это самый простой способ Я нашел, чтобы обновить фавикон локально.
переименуйте файл favicon и добавьте заголовок html с новым именем, например:
<link rel="SHORTCUT ICON" href="http://www.yoursite.com/favicon2.ico" />
Если вы используете PHP, вы также можете использовать MD5-хэш фавикона в качестве строки запроса:
<link rel="shortcut icon" href="favicon.ico?v=<?php echo md5_file('favicon.ico') ?>" />таким образом, фавикон всегда будет обновляться, когда он был изменен.
Как указано в комментариях, вы также можете использовать последнюю измененную дату вместо 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 cache
${user.home}/Library/Application Support/Google/Chrome/Default/Favicons
ну, накладные расходы-это накладные расходы, Но да, не слишком большие.
кроме того, браузеры иногда "жадные" о кэшированных файлах. Вы можете очистить кэш и / или перезагрузить браузер и может увидеть изменения. Если это не удастся, хотя...
мое дешевое решение-это:
- посетите ваш файл по адресу http://example.com/favicon.ico в вашем браузере.
- удалить значок.ico от вашего webroot.
- визит http://example.com/favicon.ico снова в браузере, убедитесь, что он отсутствует.
- загрузить новое для вашего вебсервера.
- посещение http://example.com/favicon.ico снова в браузере, убедитесь, что это новый.
Если эта последовательность не работает, то еще что-то происходит.
в зависимости от браузера они обрабатываются по-разному, но обычно я нахожу, что иду на страницу по умолчанию сайта и делаю жесткое обновление. CTRL + F5, как правило, получить его для обновления.
для Internet Explorer существует другое решение:
- откройте internet explorer.
- нажмите меню > Сервис > Свойства обозревателя.
- нажмите общие > временные файлы интернета > кнопку" Настройки".
- Нажмите кнопку" просмотр файлов".
- найти свой старый фавикон.ICO файл и удалить его.
- перезапустите браузер (internet explorer).
скорее всего, проблема с веб-браузером. Вам нужно будет удалить свой кэш из браузера, закрыть браузер и снова открыть его. Это должно все исправить.
Я не верю, что ваши фавиконы будут обновляться на ваших избранных, пока вы не вернетесь на эту страницу, и предполагая, что вы ранее очистили кэш браузеров.
ваш веб-браузер не будет выходить в интернет, чтобы проверить наличие нового фавикона самостоятельно... слава Богу.
попробуйте открыть в новой вкладке
Я пробовал многие из вышеперечисленных вещей (сброс кэша, обновление, использование тега ссылки и т. д.), Я даже проверил свой
.htaccessфайл и сброс переменной ExpiresByType.но это то, что, наконец, сработало для меня в обоих Chrome (25.0.x) и Safari (6.0.1):
- кэш
- жесткая связь фавикона с
<link>tag- перейти к
mysite.com/favicon.ico- Открытие
mysite.comin новая вкладка(вплоть до шага 3, обновление на той же вкладке продолжало воспроизводить старый значок.)
для Chrome на macOS, Если вы не хотите удалять всю базу данных Chrome favicon, как уже предлагалось здесь, вы можете удалить только конфликтующие значки:
- Выйти Из Chrome
- загрузите базу данных favicons (используя sqlite здесь):
sqlite3 ~/Library/Application\ Support/Google/Chrome/Default/Favicons
- поиск файла, который вызывает проблемы
select * from favicons where url = 'http://mysite.dev/favicon.ico';
- если вы довольны вывод:
delete from favicons where url = 'http://mysite.dev/favicon.ico';
кроме того, вы можете найти шаблон, который можно повторно использовать для удаления нескольких записей:
- искать несколько файлов это вызывает проблемы
select * from favicons where url like 'http://mysite.dev%';
- и снова, если вы довольны тем, что это возвращает:
delete from favicons where url like 'http://mysite.dev%';
- тип
.exitи нажмите Enter чтобы выйти из sqlite- Перезапустить 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 на секунду или две в будущем и всегда получать ее, хотя это плохой долгосрочный план.
поддержка favicon Chrome является багги-игнорировать этот ответ
я написал этот ответ под впечатлением, что это то, что нужно, чтобы обновить фавиконы в Google Chrome. Однако оказывается, что это работает только в течение первых пяти минут или около того, пока значок не получит безвозвратно потерян в истории синхронизации 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() ?>" />он обновит ваш фавикон при каждой загрузке страницы.
Если вы просто заинтересованы в отладке его, чтобы убедиться, что он изменился, вы можете просто добавить фиктивную запись в файл /etc/hosts и нажать новый URL. Этот фавикон уже не будет кэшироваться, и вы можете убедиться, что новый работает.
кроме изменения имени фавикона, вы не можете заставить своих пользователей получить новую копию
это обходной путь для ошибки chrome: измените атрибут rel на таблицу стилей! Однако сохраните исходную ссылку. Работает как шарм:
Я придумал этот способ, потому что у нас также есть требование, чтобы иметь возможность обновлять сайты заказчика / производство код и я не нашел никаких других решений.
также убедитесь, что вы поставили полный URL изображения не только его относительный путь:
http://www.example.com/images/favicon.icoи
images/favicon.ico
Я знаю, что это действительно старый вопрос, но это также тот, который по-прежнему актуален, хотя в наши дни применяется только к mozilla. (Я понятия не имею, что делает explorer, потому что мы не кодируем для нестандартных браузеров).
Chrome хорошо себя ведет, если в заголовке есть значок тега.
хотя mozilla хорошо осведомлены о проблеме, как обычно, они никогда не исправляют раздражающие мелочи. Даже спустя 6 лет.
Итак, есть два способа заставить икону обновить с помощью firefox.
пусть все ваши клиенты удалят firefox. Затем переустановите.
вручную введите только домен в строке url - не используйте http или www просто домен (mydomain.com).
Это предполагает, конечно, что ваши записи ns включают разрешение только для доменного имени.
Это работает для Chrome:
на Mac: удалить файл
${user.главная} / библиотека / поддержка приложений / Google / Chrome / Default / Favicons
в Windows: удалить файлы
C:\Users[имя пользователя]\AppData\Local\Google\Chrome\User Data\Default\Favicons C:\Users[пользователя]\AppData\местные\Гугл\Хром\пользовательские данные\по умолчанию\фавиконок-журнал
вот как я справился с этим с помощью просто анимированного фавикона и FireFox 3.6.13 (бета-версия) он, вероятно, будет работать и для других версий FireFox, дайте мне знать, если это не так. Это в основном решение artlung ,но решение проблемы.gif файл, а также:
- Я открыл программу FTP, загрузил свой фавикон.ico и favicon.gif файлы,
- затем удалил их из файлов моего сервера.
- затем я открыл их в своем браузере как artlung предложенный: http://mysite.com/favicon.ico и http://mysite.com/favicon.gif после того, как эти адреса загружены и отображаются 404 страницы ошибок ("страница не найдена")
- затем я загрузил оба файла обратно на свой сервер, и PRESTO - правильные значки были мгновенно отображены.
Если проблема продолжается, несмотря на применение некоторых шагов выше попробуйте перезапустить сервер IIS. Надеюсь, это поможет...
простой
1: я не хочу возиться с кодами (ps my site builder не использует коды, он использует кнопку" Загрузить файл", и он делает это сам)
2: я пробовал CTRL+F5 и это не работает для меня так....
У МЕНЯ ЕСТЬ РЕШЕНИЕ:
IE: очистить всю историю браузера и куки, перейдя в настройки cog O
Chrome: перейдите в меню в правом верхнем углу под X, который выглядит как A = , затем перейдите в Настройки, История, Очистить данные просмотра и установите все флажки, которые применяются (я сделал историю, куки и очистить catche с начала времени)
Саймон, Я полагаю, что есть причина, по которой ни один из других ответов не принимается до сих пор. Таким образом, я считаю, что это может тем не менее, это проблема Grails - особенно если вы используете "плагин ресурсов".
Если ваши плагины предоставляют favicon (что - нелогично - многие делают), они могут переопределить тот, который вы хотели использовать-учитывая, что ваш находится в самом плагине.
Если удаление фавикона из всех ваших плагинов временно решает проблему, то вы очень вероятно, испытывая это:
Это может быть полезно всего нескольким людям, но у меня была та же проблема и я обнаружил, что это связано с файловыми пермессиями, поэтому я дал ему разрешение 777, и он работал, конечно, после того, как вы уверены, что проблема есть, убедитесь, что вы изменили разрешения на более безопасные значения.
Comments