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 헤더를 설정하는 방법을 알고 싶습니다.
솔루션
Tratcher 해결책으로 저를 이끌어 StaticFilesOptions 클래스 문서 등에 대한 링크를 제공했다. 이 같은 ConfigureFiles 방법에 StaticFilesOptions을 추가 : 당신은 UseStaticFiles에 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);
});
}