.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