2015-08-21 32 views
6

ASP.net 4.5 biz web.config için 'ClientCache' ekleyerek (tarayıcı önbelleği sağlayan in-turn) statik kaynaklar üzerinde başlıklarını sona etkinleştirmek edebilmek için kullanılan, bir şey gibi:ASP.NET Core ClientCache etkinleştirme

<staticcontent> 
    <clientcache cachecontrolmode="UseMaxAge" cachecontrolmaxage="365.00:00:00" /> 
</staticcontent> 

http://madskristensen.net/post/cache-busting-in-aspnet

başvurulan gibi nasıl hayır web.config ve Startup.cs varken biz ASP.net 5'de şimdi bunu yapıyorsun?

cevap

8

(IApplicationBuilder applicationBuilder, .....) dinamik kaynaklar ancak bunun için gayet

applicationBuilder.UseStaticFiles(new StaticFileOptions 
{ 
    OnPrepareResponse = context => 
    context.Context.Response.Headers.Add("Cache-Control", "public, max-age=2592000") 
}); 
+0

Bu benim için iyi çalıştı! – Sam

1

MVC kullanıyorsanız, istemci önbellek başlıklarını ayarlamak için eylemlerinizde ResponseCacheAttribute kullanabilirsiniz. Kullanabileceğiniz ResponseCacheFilter da var.

+1

statik dosyalar içindir. –

+1

Web.config oraya kadar ve hatalı değilse IIS'ye özel şeyler için kullanılır. öğesi çalışmıyor mu? – Andreas

+0

Sadece wwwroot köküne web.config içeriği gibi bu eklendi ama hala hiçbir başlıklarını sona :(... < system.webServer>

1

Hangi sunucuyu kullanıyorsunuz?

  • IIS kullanıyorsanız, www web klasörünüzde web.config dosyasını kullanabilirsiniz.

  • Kerkenel kullanıyorsanız, henüz yerleşik bir çözüm yoktur. Ancak, belirli önbellek denetimi üstbilgisini ekleyen bir ara katman yazabilirsiniz. Veya nginx'i ters proxy olarak kullanın.

Ara Katman:

test DEĞİL ve sadece kafamın üstünde böyle bir şey yazabilirsiniz (!):

: bir ters proxy olarak

public sealed class CacheControlMiddleWare 
{ 
    readonly RequestDelegate _next; 
    public CacheControlMiddleWare(RequestDelegate next) 
    { 
     _next = next; 
    } 

    public async Task Invoke(HttpContext context) 
    { 
     if (context.Request.Path.Value.EndsWith(".jpg") 
     { 
      context.Response.Headers.Add("Cache-Control", new[]{"max-age=100"}); 
     } 
     await _next(context); 
    } 
} 

nginx

http://mjomaa.com/computer-science/frameworks/asp-net-mvc/141-how-to-combine-nginx-kestrel-for-production-part-i-installation

t şapka, ben tepki önbelleğe alma için bazı notlar yazdım: Startup.cs> Yapılandırma yılında

http://mjomaa.com/computer-science/frameworks/asp-net-mvc/153-output-response-caching-in-asp-net-5

+0

Merhaba teşekkürler. Bu middleware'i startup.cs içinde nasıl kuracağım hakkında bir fikir verebilir misiniz (middleware benim için yeni bir kavramdır) –

İlgili konular