gpt4 book ai didi

c# - 使用 OWIN 静态文件时配置客户端缓存

转载 作者:太空狗 更新时间:2023-10-29 20:33:10 26 4
gpt4 key购买 nike

这是我的 Startup.cs,我在其中将索引页面映射到路由“/app”。

...
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 header (如果可能的话)?

解决方案
Tratcher 提供了指向 StaticFilesOptions 类文档等的链接,这使我找到了解决方案。将 StaticFilesOptions 添加到 ConfigureFiles 方法中,如下所示:

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

最佳答案

您可以将 StaticFilesOptions 传递给 UseStaticFiles。在选项上使用 OnPrepareResponse 事件来自定义您的响应。参见 http://katanaproject.codeplex.com/SourceControl/latest#src/Microsoft.Owin.StaticFiles/StaticFileOptions.cs

关于c# - 使用 OWIN 静态文件时配置客户端缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37990690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com