На нашем веб-сайте, использующем 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, по-видимому, обслуживает старое изображение вместо нового.