2016-06-23 35 views
7

Bu, dizin sayfamı '/ app' yoluna eşleştirdiğim Startup.cs sayfam.OWIN statik dosyalarını kullanırken istemci önbelleğe almayı yapılandırma

... 
using Microsoft.Owin.FileSystems; 
using Microsoft.Owin.StaticFiles; 
using Microsoft.Owin.Diagnostics; 
[assembly: OwinStartup(typeof(conApi.Startup))] 

namespace conApi 
{ 
    public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      ////Set static files 
      ConfigureFiles(app); 

      //Enable Cors 
      app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); 
     } 

     public void ConfigureFiles(IAppBuilder app) 
     { 
      app.Map("/app", spa => 
      { 
       spa.Use((context, next) => 
       { 
        context.Request.Path = new PathString("/index.html"); 

        return next(); 
       }); 

       spa.UseStaticFiles(); 
      }); 
     } 
    } 
} 

Bir çekicilik gibi çalışır, ancak istemci önbelleğe almayı nasıl yapılandıracağımı bilmiyorum. OWIN statik dosyaları kullanırken bu mümkün ise Expires üstbilgisini nasıl ayarlayacağımı bilmek ister misiniz?

ÇÖZÜM
Tratcher çözüm bana yol StaticFilesOptions sınıf belgeleri vb bağlantısını sağladı. Böyle ConfigureFiles yönteme StaticFilesOptions Eklendi: Sen UseStaticFiles bir StaticFilesOptions geçebilir

public void ConfigureFiles(IAppBuilder app) 
{ 
    var staticFileOptions = new StaticFileOptions 
    { 
     OnPrepareResponse = (StaticFileResponseContext) => 
     { 
      StaticFileResponseContext.OwinContext.Response.Headers.Add("Cache-Control",new[] { "public", "max-age=1000" }); 
     } 
    }; 

    app.Map("/app", spa => 
    { 
     spa.Use((context, next) => 
     { 
      context.Request.Path = new PathString("/index.html"); 

      return next(); 
     }); 

     spa.UseStaticFiles(staticFileOptions); 
    }); 
} 

cevap