favicon не отображается Firefox

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

однако, этот вопрос настолько странный, без надежды на реальное просветление (так как этот вопрос обсуждался так часто, и все же я не мог извлечь выгоду из чтения там), вот мой вопрос:

favicon.ico существует и (локально размещенный веб-сайт разработки) http://website/favicon.ico отображает правильный значок. Его размер составляет всего 198 байт, поэтому ограничение размера, которое я нашел в Firefox о:config 1024 байт, соблюдается. В соответствии с мудростью о фавиконах в интернете браузер должен запрашивать фавиконы самостоятельно, когда на странице ничего нет. Однако мой журнал apache ясно показывает, что Firefox (9.01) никогда даже не просит об этом.

далее: когда я добавить

<link rel="shortcut icon" href="/favicon.ico">

Я все еще не получаю фавикон.

далее: когда я вместо этого использую

<link rel="shortcut icon" href="/favicon.ico?">

(обратите внимание на завершающий "?") Я вдруг DO получить favicon. Но это не может быть проблемой кэша! Во-первых, я очистил кэш, во-вторых, как я уже упоминал выше, я уже успешно загрузил файл значка в Firefox через его URL http://website/favicon.ico

Я не могу объяснить это поведение в Firefox. Кстати, Chrome показывает правильный favicon.

это моя страница голова:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="shortcut icon" href="/favicon.ico?" />
</head>
...

как только я добавлю хотя бы "?"после "Ико" работает.

вот что сервер отправляет, когда запрашивается значок, так как некоторые просили об этом. я понятия не имею, почему это было бы полезно, Так как a) я сказал, что мой Кэш был пуст для каждого теста (проверено с помощью about:cache тоже), и b) я сказал, что сервер никогда даже не запрашивал файл, когда он не появляется. 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

5 ответов


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



важно:

моя исходная проблема не может быть проблемой кэша: Во-Первых, Я сделал очистить кэш, во-вторых, как я уже упоминал выше, Я уже успешно загружен файл значка в Firefox через его URL http://website/favicon.ico

Я do (did) получить правильный значок в браузере при загрузке непосредственно! Но у меня все еще есть (был) неправильный значок, отображаемый как "favicon". Загрузка файла значков напрямую is (или was) независимая дисплея в фактическом местоположении favicon (за исключением того, когда он загружается в первый раз, конечно).

, если вы только проблема с кэшем и принудительное обновление работает для Вас, чем этот вопрос / проблема не ваша! И ваш ответ-не ответ для этот вопрос.

люди не должны игнорировать факты. Когда вас бомбардируют множеством уже ответивших и / или бесполезных вопросов, качество вопроса страдает на данный момент и для архива тоже. удивительно, как мне приходится бороться с людьми, которые все еще настаивают на том, что force-refresh-это отвечай!



Примечание: вы можете полностью избежать этой проблемы, используя URL-адрес cache-buster, как и StackOverflow, их URL-адрес favicon заканчивается на .../img/favicon.ico?v=4f32ecc8f43d.

если обычные меры очистки кэша терпят неудачу (так же, как и для меня), здесь дается ответ: " Очистка Всех Фавиконов Из Кэша Firefox 3 [How-To]" - и вот archive.org версия ссылки (возможно, медленнее, но она не будет идти прочь).

шаги с этой страницы воспроизводится здесь:

  1. установить Firefox дополнения SQLite Manager
  2. запустите его из Tools - > SQLite Manager
  3. нажмите пункт меню " база данных "(вверху слева) и выберите" Подключить базу данных", введите %APPDATA%\Mozilla\Firefox
  4. открыть Profiles папка и перейдите в профиль, который вы используете
  5. выберите places.sqlite как файл базы данных для редактирования (Firefox 61 и более поздние версии: favicons.sqlite)
  6. выбрать moz_favicons таблица. В контекстном меню правой кнопкой мыши используйте "пустая таблица",не используйте "Drop table" (стол должен быть там)или используйте контекстное меню правой кнопкой мыши над данными и выберите "Удалить" только над одной записью, которую вы хотите удалить (см. скриншот ниже)

screenshot deleting an entry using SQLite manager

Я начал подозревать, что Firefox кэширует favicons отдельно от всего остального-это было единственным объяснением, соответствующим наблюдаемому поведению. Поэтому я погуглил и нашел по ссылке выше. Затем я попытаюсь очистить этот дополнительный кэш и посмотреть, что произойдет.

ОБНОВЛЕНИЕ - РЕШЕНО: после удаления кэша favicon с помощью дополнения" SQLite Manager " Firefox все работает так, как должно.

таким образом, секрет был дополнительным (sqlite) кэшем для FAVICONS в Firefox, который не очищается обычным " чистым кэшем" команда.

обновление марта 2017: я проверил это дополнение Firefox, а также автономное приложение, предложенное в этом ответе ниже и оба делают свою работу. Надстройка SQLite Manager последний раз обновлялась ~2 года назад в соответствии с его страница проекта Github, но он по-прежнему делает то, что нужно в этом контексте. Есть обновления, доступные от люди, которые раздвоили проект, но это только в сторону.


вот как это сделать, не теряя все фавиконы

  1. получить инструмент, который может открыть файл SQLite, я использую браузер БД для SQLite

  2. на about:profiles в вашем браузере.

  3. откройте корневую папку default profile. (см. прикрепленное изображение для подсказок) image

  4. открыть .

  5. на moz_favicons таблица

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

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

  8. посетите ваш сайт он покажет новый favicon


давно, я знаю, но процедура очистки кэша на FF 31.0 / Windows работает для меня - может быть, она новая. Options -> network -> cached web content -> clear now. Выключите FF, перезапустите. Не возиться с SqLite, загружается новый favicon.

однако есть еще одна потенциальная проблема. Сервер для сайта, на котором я пытался обновить значок, имел DocumentRoot of /var/www. Этот сайт был на foo.com/fubar, где var/www/fubar symlinked К где-то еще. Другими словами, сайт находится на один уровень ниже DocumentRoot. Это работает для Chrome, Opera и IE, но не Safari или FF:

<link rel="shortcut icon" href="/favicon.ico" >

FF ищет favicon в /var/www, вместо /var/www/fubar. Это работает для всех 5 браузерах:

<link rel="shortcut icon" href="favicon.ico" >

столкнулся с аналогичной проблемой. Просто сломайте кэш изображения. Я использую MVC Razor View.

    var link = document.createElement('link');
    link.type = 'image/x-icon';
    link.rel = 'shortcut icon';
    link.href = "/images/favicon.ico?t=@DateTime.Now.Ticks";
    var head = document.head || document.getElementsByTagName('head')[0];
    head.appendChild(link);

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

1-Щелкните правой кнопкой мыши закладку (моя находится в меню панели инструментов) 2-Нажмите на свойства 3-Затем нажмите "Отмена" (кажется, чтобы обновить скрытый кэш)

Я уверен, что нажатие ok / save будет иметь тот же эффект.