У меня есть немного одноразовый сценарий для сайта, над которым я работаю.
Я маршрутизирую определенные пути запросов в специальный модуль HTTP, который динамически выводит «статический» контент.Я имею в виду содержание javascript и css.Тем не менее, этот контент генерируется динамически модулем, но после генерации меняется не очень часто.
Итак, я хотел бы кэшировать вывод моего пользовательского модуля, но по какой-то причине, ни кешированный контент,ни 304 не возвращаются клиенту, как я ожидал.
Если я перехожу по URL-адресу с помощью Firefox, кэширование в локальном браузере, похоже, работает.Браузер использует то, что он кэшировал локально, и не отправляет запрос на сервер.
Однако, если я нажимаю клавишу F5 на странице, браузер пытается повторно извлечь файл с сервера, иВпоследствии сервер перенаправляет на модуль, регенерирует контент и, по существу, подает его свежим.Я ожидаю, что IIS вместо этого вернет клиенту значение 304 или будет обслуживать содержимое из кэша и избежать полного вызова модуля.
Кажется, модуль возвращает правильные заголовки кэша:
http://www.mydomain.com/SpecialPath/File_17aa85bf3bf430066a0524787be6af7b9363c8ae.js
Cache-Control public, max-age = 1800
Content-Encoding gzip
Content-Length 60568
Application-Type application / x-Javascript;charset = utf-8
Дата Вт, 27 марта 2012 20:25:42 GMT
Etag 17aa85bf3bf430066a0524787be6af7b9363c8ae
Last-Modified Вт, 27 марта 2012 20:25:43GMT
Сервер Microsoft-IIS / 7.5
Разное Accept-Encoding
X-AspNet-версия 4.0.30319
Когда я использую F5 запрос браузеразаголовки также в порядке:
Cache-Control max-age = 0
If-Modified-Since Вт, 27 марта 2012 20:25:21 GMT
If-None-Match 17aa85bf3bf430066a0524787be6af7b9363c8ae
Однако, если я устанавливаю точку останова, я вижу, что запрос передается в модуль.
304 никогда не возвращается, и при этом содержимое никогда не подается из кэша вывода.
Нужно ли делать что-то дополнительное или специальное, чтобы получить кэширование вывода для кэширования содержимого, возвращаемого из пользовательского модуля??
Что-то не так с моими заголовками?