2016-06-23 9 views
7

これは私のStartup.csで、インデックスページをルート '/ app'にマップします。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(); 
      }); 
     } 
    } 
} 

これは魅力的ですが、クライアントのキャッシュ設定方法はわかりません。 OWIN静的ファイルを使用しているときにExpiresヘッダーを設定する方法を知りたいですか?

SOLUTION
Tratcherは、ソリューションに私を導くStaticFilesOptionsクラスのドキュメントなどへのリンクを提供します。このようなConfigureFiles方法にStaticFilesOptionsを追加しました:

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

答えて

関連する問題