2016-05-02 7 views
1

Я использую Asp.Net Core RC2 и Kestrel как мой веб-сервер. Мне нужно, чтобы на запросы (в этом случае все они) ответили заголовком без кэша, чтобы браузеры получили самую новую версию (не 304).Как добавить кеш-кеш к ответам Kestrel?

Есть ли способ в Startup для настройки Kestrel или способа ввода этого шага в конвейер?

EDIT: no-store может быть лучшим выбором в моей ситуации: https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching «no-store Response не разрешается кэшировать и должен быть полностью загружен при каждом запросе».

ответ

5

Вы можете использовать промежуточное программное обеспечение для работы с заголовками. Например, вы не можете заставить никак-кэш кэш-контроль, добавив следующую строку в верхней части Настройка метода стартапа:

app.Use(async (httpContext, next) => 
{ 
    httpContext.Response.Headers[HeaderNames.CacheControl] = "no-cache"; 
    await next(); 
}); 
+2

нит: вы можете использовать встроенный в [класс 'HeaderNames'] (https://github.com/aspnet/HttpAbstractions/blob/release/src/Microsoft.Net.Http.Headers/HeaderNames.cs), чтобы избежать первой магической строки: 'httpContext.Response.Headers [HeaderNames.CacheControl] =" no-cache «'. – Pinpoint

+0

Обновлено, чтобы отразить изменения. –

+1

Удостоверьтесь, что это выше других приложений.Uses (ex app.UseDefaultFiles или app.UseStaticFiles() – Aligned