【问题标题】:Configure client caching when using OWIN static files使用 OWIN 静态文件时配置客户端缓存
【发布时间】:2016-10-25 17:35:27
【问题描述】:

这是我的 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 标头,我想知道如何设置?

解决方案
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);
    });
}

【问题讨论】:

    标签: c# caching owin


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      • 2019-07-12
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      相关资源
      最近更新 更多