На нашем веб-сайте, использующем IIS 8, мы обслуживаем готовые jpgs-файлы на экране управления изображениями. Изображения находятся на отдельном жестком диске, который подключен к IIS через виртуальную папку. Все фотографии названы с идентификатором объекта, за которым следует номер фотографии. Так:
Photo 1: 58935928.1.jpg
Photo 2: 58935928.2.jpg
Photo 3: 58935928.3.jpg
Если я хочу изменить порядок фотографии 3 в слот для фотографий 1, мне нужно переименовать фотографию 3 в 58935928.3.jpg.TEMP, затем переименовать фотографию 1 в 58935928.3.jpg, а затем 58935928.3.jpg.TEMP в 58935928.1.jpg. Это прекрасно работает. Однако при просмотре страницы и ее обновлении изображения, возвращенные для 58935928.1.jpg, по-прежнему являются старыми изображениями до их переименования. Примерно через 5-10 минут при обновлении будут отображаться правильные изображения.
Мы думали, что это проблема кеширования при просмотре. Принудительное обновление Ctrl-F5 не помогло, и установка метаданных кеша на странице тоже не исправила. Мы заметили, что когда это происходит, и мы переходим в разные браузеры, изображения по-прежнему отображаются неправильно. Это привело нас к мысли, что кеширование на стороне сервера, поскольку новый экземпляр браузера также получает неправильное изображение.
Мы вошли в iis и настроили кеширование вывода без кеширования ядра и пользователя, просто чтобы посмотреть, исправит ли он это. Нет разницы. Мы не хотим так усердно отключать кеш для всего, просто jpgs подойдет.
Почему это происходит? Это вызывает путаницу у наших пользователей, поскольку они переупорядочивают изображения, и они фактически переупорядочиваются в файловой системе, но IIS, похоже, обслуживает старое изображение вместо нового.