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. В контекстном меню контекстного меню используйте "Пустая таблица", не использовать таблицу "Отбрасывать" (таблица должна быть там) или используйте контекстное меню правой кнопки мыши над данных и выберите "Удалить" только для одной записи, которую вы хотите удалить (см. снимок экрана ниже).

снимок экрана с удалением записи с использованием диспетчера SQLite

Я начал подозревать, что 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. (см. прикрепленное изображение для подсказок) image

  • откройте файл places.sqlite.

  • перейти в moz_favicons table

  • фильтровать и удалять запись для вашего имени хоста (см. прикрепленное изображение для подсказок) image

  • сохранить файл (см. рисунок) image

  • Посетите свой сайт, он покажет новый значок

Ответ 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 будет иметь тот же эффект.