Как принудительно обновлять изыскан?

StackOverflow https://stackoverflow.com/questions/2208933

  •  18-09-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

<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. Толкать войти
  3. Ctrl+F5
  4. Перезапустить браузер (т.е. Firefox)

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

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

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

Это самый простой способ обновления Favicon на местном уровне.

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

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

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

<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') ?>" />

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

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

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

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

В Chrome на Mac OS X можно удалить файл с помощью кэша Favicon

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

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

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

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

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

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

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

На Mac: + Сдвиг-р или удержать Ctrl и нажмите кнопку перезагрузки в браузере.

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

  1. Открыть интернет -проводник.
  2. Нажмите Меню> Инструменты> Параметры Интернета.
  3. Нажмите General> Кнопку временных интернет -файлов> «Настройки».
  4. Нажмите кнопку «Просмотреть файлы».
  5. Найдите свой старый файл favicon.ico и удалите его.
  6. Перезапустить браузер (Internet Explorer).

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

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

Ваш веб -браузер не пойдет в Интернет, чтобы самостоятельно проверить новый Favicon ... Слава Богу.

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

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

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

  1. Кэш промывки
  2. Жесткий сцепление с фавиконом с <link> ярлык
  3. Навигация на mysite.com/favicon.ico
  4. Открытие mysite.com в новой вкладке

(Вплоть до шага 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 и нажмите «Возвращение», чтобы бросить sqlite
  2. Перезапустить хром

Когда вы запрашиваете 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

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

Поддержка Chrome Favicon является багги - не обращайте внимания на этот ответ

Я написал этот ответ под впечатлением, что это то, что потребовалось, чтобы обновить Favicons в 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». После установки вы найдете команду «Перезагрузить любимые значки» в раскрывающемся меню закладок.

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() ?>" />

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

Chrome версия: 68.0.3440.106

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

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

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

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

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

    $ {user.home}/library/support/google/chrome/default/favicons

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

    C: users [username] appdata local google chrome пользовательские данные default favicons c: users [username] appdata local google chrome user Data default favicons-Journal

источник

Это обходной путь для Chrome Bug: измените атрибут REL на styleShip! Держите оригинальную ссылку, хотя. Работает как шарм:

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

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

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

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

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

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

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

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

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

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

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

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

И не:

images/favicon.ico

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

Простой,

1: Я не хочу возиться с кодами (PS My Builder не использует коды, он использует кнопку «Загрузить файл», и он делает это сам)

2: я попробовал Ctrl+F5 И это не работает для меня, так что ....

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

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

Chrome: перейдите в меню в правом верхнем углу под x, который выглядит как a =, затем перейдите к настройкам, истории, очистку данных о просмотре и проверьте все полевые ящики (я делал историю, cookie и опустошил улов из начало времени)

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

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

  1. Добавьте свой файл .ico в проект.
  2. Перейдите на angular.json и в этих «проектах» -> «Архитектор» -> «Строительница» -> «Параметры» -> «Активы» и здесь сделайте запись для вашего файла значков. Обратитесь к существующей записи Favicon.ico, чтобы узнать, как это сделать.
  3. Перейдите на index.html и обновите путь файла значка. Например,

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

В качестве альтернативы, переименовать свой файл значков с помощью favicon.ico и замените его в каталоге.

  1. Перезагрузите сервер.
  2. Жесткий обновление браузера, и все готово.

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top