Недавно у меня была небольшая загадка кэширования в том, что Firefox продолжал предоставлять мне «старую» (т.е. кэшированную) версию файла, несмотря на все мои усилия, чтобы заставить его использовать тот на удаленном сервере.
Вот настройка:

- A Foswiki за веб-сервером Apache.Foswiki - это набор Perl-скриптов, выполняемых через CGI-модуль веб-сервера Apache.Вы можете прикрепить контент к вики-страницам.Они хранятся в файловой системе с использованием соглашения о версиях (ранее RCS использовалось для этого, но оно было заменено чем-то, что кажется более простым и надежным)
- Нет прокси или кешеймежду Firefox и веб-сервером.
- Я запрашиваю файл
.ods
из Foswiki, который был ранее прикреплен к странице Foswiki. - Firefox спрашивает: «Что Firefox должен делать с этим файлом?»,Я говорю это: «Открыть с помощью LibreOffice Calc».
Должно быть довольно простым.
Итак:
- Открыть
my_content.ods
в LibreOffice Calc. - Редактировать.
- Сохраните измененный файл в моем домашнем каталоге.
- Прикрепите измененный
my_content.ods
к соответствующей странице Foswiki, таким образом увеличив версию приложения на одинincrement.
К сожалению, попытка загрузить обновленное вложение заново приводит к тому, что LibreOffice начинает работу со старой копией.Argh!Риск потери данных реален!
Я обнаружил, что после загрузки старая копия продолжает появляться в /tmp/mozilla_foouser0
.Это можно легко проверить, проверив сумму md5 my_content.ods
, my_content-1.ods
и т. Д., Которые отображаются там.
Теперь возможно, что веб-сервер не сообщает Firefox, что файл обновлен.Но я должен быть в состоянии заставить Firefox обновить файл, а?
Я пытался:
- Полностью удалить вложение со страницы FosWiki и заново установить новую версию.Результаты загрузки отображаются в старой версии.
- Вручную удалите все файлы с
/tmp/mozilla_foouser0
перед повторной попыткой загрузки.Результаты загрузки отображаются в старой версии. - Перезапустите веб-сервер.Нет.
- Очистить LibreOffice "последние файлы".Результаты загрузки отображаются в старой версии.
- Очистите кэш Firefox «Данные автономного веб-сайта» в «Журнале».Результаты загрузки отображаются в старой версии.
Только полное удаление «Просмотр и загрузка истории» Firefox приводит к отображению обновленного файла.Но это загадочно - откуда Firefox получает старый файл?Это не из /tmp/mozilla_foouser0
... так откуда?
Обновление
Я включил «судебную регистрацию» на веб-сервере Apache и очистил /tmp/mozilla_foouser0
.
Когда я загружаю вложение, копия старого вложения (т. Е. Имеющая хэш-сумму старого вложения) появляется в /tmp/mozilla_foouser0
, названном, например, /tmp/mozilla_foouser0/wIzoDA_S.ods.part
, поскольку Firefox отображает диалоговое окно «Что следуетFirefox делать с этим файлом ".В журнале веб-сервера нет активности, так что это полностью внутреннее дело Firefox.Файл, находящийся на сервере, является новым (опять же, согласно его хэш-сумме).«Очистить загрузки» в Firefox не имеет никакого эффекта.