Недавно мы переместили сайт в производство под управлением Server 2008 x64 и IIS 7. Страницы ASP.NET, по-видимому, загружаются нормально, но когда дело доходит до IE 7 и 8, возникла странная проблема кеширования с файлами CSS и JavaScript в страница.
Иногда IE не получает все файлы, необходимые для создания страницы (т.е. файлы CSS и JS). Когда я вручную перехожу к отсутствующим файлам из адресной строки, они возвращаются из локального кеша как пустые. Я нажимаю F5 на эти исходные файлы, и волшебным образом они появляются правильно. Я обновляю сайт после загрузки нескольких файлов, и кажется, что кеш не работает.
Эта проблема воспроизводилась (опять же, спорадически) только в IE 7 и 8 под управлением XP. Chrome и Firefox, похоже, не защищены.
Мы настроили IIS для использования кеширования ядра на стороне сервера для CSS, JS и изображений. Мы также установили срок действия контента для App_Themes
и Scripts
каталоги немедленно истекают. Первоначально предполагалось, что это SWF, загружающий FLV при загрузке страницы. Эти исправления не устранили проблему.
У нас не было проблем с нашим промежуточным сервером, который использует Server 2003 и IIS 6.
Любые идеи очень приветствуются.
P.S. Это похоже на эту проблему: но у нас установлен модуль статического содержимого. IIS: Content-Length 0 для CSS, Javascript и изображений
Одним из соображений может быть повреждение файловой структуры там, где находится кеш, поскольку тип / семейство браузеров обычно настраивают свои собственные области кэша в файловой системе. Вы можете попробовать переопределить кеш в другое место или проверить файловую систему на наличие трудностей (chkdsk).
Это можно исправить, выполнив следующие действия.
Перейдите на веб-сайт в IIS, нажмите «Кэширование вывода», выберите страницы aspx, установите переключатель «Предотвратить все кэширование».