2016-06-23 14 views
7

To jest mój plik Startup.cs, w którym mapuję stronę indeksu na trasę "/ app".Konfigurowanie buforowania klienta podczas korzystania z plików statycznych OWIN

... 
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(); 
      }); 
     } 
    } 
} 

Działa jak urok, ale nie wiem, jak skonfigurować buforowanie klienta. Chciałbym wiedzieć, jak ustawić nagłówek Expires, jeśli jest to możliwe przy korzystaniu z plików statycznych OWIN?

ROZWIĄZANIE
Tratcher warunkiem link do dokumentacji klasy StaticFilesOptions etc, które prowadzą mnie do rozwiązania. Dodano StaticFilesOptions do sposobu ConfigureFiles tak:

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); 
    }); 
} 

Odpowiedz