.NET 静态文件UseStaticFiles中间件设置跨域(响应头)

在项目开发中遇到这样一个问题,访问生成的静态文件报跨域,但正常接口已配置跨域是没问题的。

Nginx配置 add_header Access-Control-Allow-Origin *; 则会出现和项目中接口配置跨域冲突返回两个同样的响应头。

.NET Core项目中的静态文件由 app.UseStaticFiles()中间件提供,对其单独进行跨域配置即可。

app.UseStaticFiles(new StaticFileOptions
{
  OnPrepareResponse = (c) =>
  {
    c.Context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
  }
});

也可配置静态文件在客户端缓存时间。

ctx.Context.Response.Headers.Append("Cache-Control", "public, max-age=604800");

静态文件中间件具体使用可查看官方文档:ASP.NET Core 中的静态文件 | Microsoft Docs

posted @ 2021-12-14 14:14  kinglinglive  阅读(737)  评论(0编辑  收藏  举报