Favicon не отображается в Firefox
Я знаю, что этот вопрос задавался по крайней мере тысячу раз на этом веб-сайте, но я прочитал многие из этих тем, я считаю себя очень осведомленным и редко когда-либо прошу что-либо, вместо этого предпочитаю делать собственные исследования.
Однако эта проблема настолько странная, что без надежды на реальное просветление (так как этот вопрос обсуждался так часто, и все же я не мог извлечь из этого преимущества), вот моя проблема:
favicon.ico существует, и (локально размещенный веб-сайт разработки) http://website/favicon.ico
отображает правильный значок. Его размер составляет всего 198 байтов, поэтому ограничение по размеру, которое я нашел в Firefox, примерно: config 1024 байтов. Согласно мудрости на favicons в Интернете, браузер должен попросить favicons самостоятельно, когда на странице нет ничего. Тем не менее, мой журнал Apache ясно показывает, что Firefox (9.01) никогда даже не просит его.
Далее: когда я добавляю
<link rel="shortcut icon" href="/favicon.ico">
Я все еще не получаю значки.
Далее: когда я вместо этого использую
<link rel="shortcut icon" href="/favicon.ico?">
(обратите внимание на конечный "?" ), я внезапно получаю значок. BUt это не может быть проблемой кеша! Во-первых, я очистил кеш, во-вторых, как я уже упоминал выше, я уже успешно загрузил файл значков в Firefox через его URL http://website/favicon.ico
Я не могу объяснить это поведение Firefox. К примеру, Chrome показывает правильный значок.
Это страница моей страницы:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="shortcut icon" href="/favicon.ico?" />
</head>
...
Как только я добавлю хотя бы "?" после "ico" он работает.
Вот что посылает сервер при запросе значка, так как некоторые просили об этом. Я понятия не имею, почему это было бы полезно, так как a) я сказал, что мой кеш был пуст для каждого теста (также отмечен примерно с кешем), и б) я сказал, что сервер никогда не запрашивается файл, когда он не отображается. Firefox просто не спрашивает без "?" - с кешем пустым! Запрос появляется в журнале apache ТОЛЬКО, когда я использую добавленный "?".
Date Fri, 23 Dec 2011 12:53:22 GMT
Server Apache/2.2.20 (Ubuntu)
Last-Modified Fri, 23 Dec 2011 12:02:49 GMT
Etag "12c07fe-c6-4b4c132190e30"
Accept-Ranges bytes
Content-Length 198
Content-Type image/x-icon
Ответы
Ответ 1
Во-первых, убедитесь, что у вас нет "обычной" проблемы с кешем, напрямую загружая URL-адрес favicon (помещая его в строку URL-адреса браузера) и принудительно обновляя его. Если это выполнит эту работу, нет необходимости в сложном решении ниже.
ВАЖНО:
Моя первоначальная проблема не может быть проблемой кэша: Во-первых, я очистил кеш, во-вторых, как я уже упоминал выше, Я уже успешно загрузил файл значков в Firefox через его URL-адрес http://website/favicon.ico
Итак, я сделаю (сделал), чтобы получить правильный значок в браузере при загрузке напрямую! Но у меня все еще был (был) неправильный значок, отображаемый как "значок". Загрузка файла значка напрямую (или была) независимая на дисплее в фактическом местоположении favicon (за исключением того, когда он загружен в первый раз, конечно).
Однако, если у вас только проблема с кешем и принудительное обновление для вас, чем этот вопрос/проблема НЕ принадлежит вам! И ваш ответ не является ответом на эту проблему.
Люди не должны игнорировать факты. Когда вы подвергаетесь обстрелу множеством уже ответивших и/или бесполезных вопросов, качество вопроса страдает и на данный момент, и на архив. Удивительно, как мне приходится сражаться с людьми, которые все еще настаивают на том, что силовое обновление - это ответ!
Примечание.. Вы можете полностью исключить эту проблему, используя URL-адрес кэширования, как это делает StackOverflow, их URL-адрес для значков заканчивается на .../img/favicon.ico?v=4f32ecc8f43d
.
Если нормальные меры очистки кеша не срабатывают (как и для меня), здесь дается ответ: "Очистка всех значков от Firefox 3 Cache [How-To ]" - и вот ссылка на версию archive.org(возможно, медленнее, но она не исчезнет).
Шаги с этой страницы, воспроизведенные здесь:
- Установите дополнительный SQLite-менеджер Firefox
- Запустите его из Tools → SQLite Manager
- Выберите пункт меню "База данных" (вверху слева) и выберите "Подключить базу данных", введите
%APPDATA%\Mozilla\Firefox
- Откройте папку
Profiles
и перейдите к профилю, который вы используете.
- Выберите
places.sqlite
в качестве файла базы данных для редактирования
- Либо выберите таблицу
moz_favicons
. В контекстном меню контекстного меню используйте "Пустая таблица", не использовать таблицу "Отбрасывать" (таблица должна быть там) или используйте контекстное меню правой кнопки мыши над данных и выберите "Удалить" только для одной записи, которую вы хотите удалить (см. снимок экрана ниже).
Я начал подозревать, что Firefox кэширует favicons отдельно от всего остального - это было единственное объяснение, соответствующее наблюдаемому поведению. Таким образом, я искал Google для подтверждения и нашел вышеуказанный URL. Затем я попробую очистить этот дополнительный кеш и посмотреть, что произойдет.
UPDATE - SOLVED:. После удаления кеша favicon с помощью "SQLite Manager" добавление Firefox работает как должно.
Итак, секрет был EXTRA (sqlite) CACHE FOR FAVICONS в Firefox, КОТОРЫЙ НЕ УКАЗАН РЕГУЛЯРНОЙ командой "Clear Cache".
Обновление марта 2017 года: я проверил это дополнение Firefox, а также автономное приложение, предложенное в этом ответе ниже, и оба выполняют эту работу. Надстройка SQLite Manager в последний раз обновлялась ~ 2 года назад в соответствии с ее страницей проекта Github, но она по-прежнему делает то, что ей нужно в этом контексте, Есть обновления, доступные от людей, которые разветкили проект, но это только в сторону.
Ответ 2
Давным-давно, я знаю, но процедура очистки кеша на FF 31.0/Windows работает для меня - может быть, новая. Options -> network -> cached web content -> clear now
. Выключите FF, перезапустите. Не нужно возиться с SqLite, новые favicon нагрузки.
Однако есть еще одна потенциальная проблема. Сервер для сайта, на котором я пытался обновить значок, имел DocumentRoot
of /var/www
. Этот сайт был в foo.com/fubar
, где var/www/fubar
символически привязан к другому. Другими словами, сайт находится на одном уровне от DocumentRoot
. Это работает для Chrome, Opera и IE, но не для Safari или FF:
<link rel="shortcut icon" href="/favicon.ico" >
FF ищет значок в /var/www
вместо /var/www/fubar
. Это работает для всех 5 браузеров:
<link rel="shortcut icon" href="favicon.ico" >
Ответ 3
столкнулся с аналогичной проблемой. Просто сломайте кеш изображения.
Я использую MVC Razor View.
var link = document.createElement('link');
link.type = 'image/x-icon';
link.rel = 'shortcut icon';
link.href = "/images/[email protected]";
var head = document.head || document.getElementsByTagName('head')[0];
head.appendChild(link);
Ответ 4
Вот как это сделать, не теряя всех значков
-
Получить инструмент, который может открыть файл SQLite, я использую БД-браузер для SQLite
-
перейдите в about:profiles
в своем браузере.
-
откройте корневую папку default profile
. (см. прикрепленное изображение для подсказок)
-
откройте файл places.sqlite
.
-
перейти в moz_favicons
table
-
фильтровать и удалять запись для вашего имени хоста (см. прикрепленное изображение для подсказок)
-
сохранить файл (см. рисунок)
-
Посетите свой сайт, он покажет новый значок
Ответ 5
На ум приходит пара неопределенностей:
- Другой случай файла, например FAVICON.ICO; apache обрабатывает это на Linux, но? не пугало меня.
- favicon.ico не имеет формат .ico, но gif или png.
- Firefox действительно не сразу принимает значок.
http://mathiasbynens.be/notes/rel-shortcut-icon
Mentions rel= "icon"; лучше прочитать связанную страницу. Я, например, также использую "ярлык".
Ответ 6
У меня была эта проблема только сейчас, кажется, что кеш, куки и история не имеют никакого эффекта, но я сделал это, что исправил его.
1 - Щелкните правой кнопкой мыши по закладке (моя находится в меню панели инструментов)
2 - Нажмите на свойства
3 - Затем нажмите на отмену (похоже, обновить скрытый кеш)
im уверен, что нажатие ok/save будет иметь тот же эффект.