Как настроить оба httpexpires и заголовки кеш-контроля
Я хочу установить как истечение срока действия, так и cachecontrol
и httpExpires
заголовки в web.config
следуя ответу на этот вопрос
В чем разница Истекает и Cache-control: max-age?
<system.webServer>
<staticContent>
<clientCache cacheControlCustom="public" cacheControlMaxAge="12:00:00" cacheControlMode="UseMaxAge" />
<clientCache cacheControlCustom="public" httpExpires="Tue, 19 Jan 2038 03:14:07 GMT" cacheControlMode="UseExpires" />
</staticContent>
</system.webServer>
Но по какой-то причине изображения стали недоступны, когда я это делаю.
У меня есть ошибка Failed to load resource: the server responded with a status of 500 (Internal Server Error)
при каждой загрузке изображения (я вижу ошибки в browser dev tools console
).
Я предполагаю, что неправильно настроен?
Это сработает, если я прокомментирую любой раздел clientCache
, оставив только один
Как это исправить?
ОБНОВЛЕНО:
Просто задал еще один связанный с ним вопрос как настроить как httpexpires, так и заголовки кэша управления web.cofig:
Ответы
Ответ 1
Эта страница IIS Client Cache гласит: "В то время как настройки" Истекает "и" Максимальный возраст "несколько аналогичны, директива" Максимальный возраст "имеет приоритет над" Истекает ". Тем не менее, IIS генерирует ошибки HTTP 500, когда одна запись" client-cache "максимального возраста использовалась параллельно с записью clientCache" Expires".
"Expires "и" max-age" взаимно исключают друг друга при настройке "Set Common Headers" в IIS. Вы можете использовать один или другой, но не оба.
Другие директивы кэша могут применяться к подпапкам или определенным файлам в Web.config. См. Эту страницу fooobar.com/questions/9762/... при настройке содержимого кеша в IIS7.
Ответ 2
<staticContent>
<clientCache cacheControlCustom="public;max-age" cacheControlMode="UseMaxAge" cacheControlMaxAge="10.00:00:00" />
</staticContent>
<urlCompression dynamicCompressionBeforeCache="true" />
Это сработало для меня, чтобы кэшировать запрос в течение 10 дней.