2016-06-23 28 views
7

Questo è il mio Startup.cs in cui mappo la mia pagina indice alla rotta '/ app'.Configurare il caching del client quando si utilizzano i file statici 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(); 
      }); 
     } 
    } 
} 

Funziona come un incantesimo ma non so come configurare il caching del client. Mi piacerebbe sapere come impostare l'intestazione Expires se è possibile quando si utilizzano i file statici OWIN?

SOLUZIONE
Tratcher fornisce il collegamento alla documentazione StaticFilesOptions di classe, ecc, che mi portano a una soluzione. Aggiunti i StaticFilesOptions al metodo ConfigureFiles in questo modo:

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

risposta

Problemi correlati