У меня есть PDF-файл на веб-сервере IIS Windows Server, где пользователи запрашивают его с помощью IE8/9/10, используя HTTP-вызов, подобный этому...
http: // mydomain.com / somefolder / myFile.pdf
Первый хит загрузит файл без проблем. Проблема: если администратор обновляет PDF-файл, а пользователь возвращается, чтобы перезагрузить его, IE показывает только локальную кешированную версию и НЕ будет запрашивать новую версию с сервера.
Я подтвердил, что по второму запросу IE8, IE9 и IE10 вообще не вызывают сервер для файла PDF. Даже условный запрос (например, if-updated-since). Подтвердил это с помощью Fiddler и WireShark. Но я никогда явно не устанавливал кеширование с помощью Max-Age или чего-то еще. У меня нет кеширования для этой папки. Я бы предпочел не устанавливать для кеша «немедленное истечение срока действия». Он делает это и для Word DOC.
Есть ли в Internet Explorer ошибка, из-за которой он ВСЕГДА использует локальные копии статических документов (например, PDF-файлов, DOC-файлов), несмотря ни на что?
Эти идеи НЕ работают:
F5, CTRL+F5, SHIFT+F5
Очистите историю браузера и кэш с помощью кнопки УДАЛИТЬ ИСТОРИЮ. Почему это на самом деле не очищает ВЕСЬ кеш, мне не понятно. У меня все выбрано для удаления, кроме паролей.
Единственные известные мне способы решения этой проблемы:
Вручную удалите PDF-файл локально, потому что кнопка «УДАЛИТЬ ИСТОРИИ» не удаляет локальную версию. Но большинство пользователей не настолько сообразительны.
Используйте Firefox, но это не одобренный компанией браузер. Не заводи меня.
Установите для кэширования сервера значение «Срок действия немедленно», но pdf-файлы смешаны в папках с веб-страницами, и я предпочитаю этого не делать. Я хочу использовать кеширование максимального возраста для других вещей, таких как CSS, скрипты, изображения и т. д.
Добавьте поддельную строку запроса в конец, например ?id=1, и это сработает, но в бизнес-направлении есть сотни документов, каждый со ссылками внутри документов, которые необходимо обновить.
Используйте кнопку FIDDLER «очистить кеш» или CCleaner, но большинство пользователей в моей компании (70 тысяч сотрудников) не являются разработчиками и не могут иметь это программное обеспечение.
Есть ли реальное решение для этого, чтобы заставить IE вести себя так, как я думал?