Код: Выделить всё
public static class IApplicationBuilderExtensions
{
///
/// In order for this to work, it must be called BEFORE UseCors is called in the startup.
///
///
///
///
///
///
public static IApplicationBuilder UseStaticFilesWithCors(this IApplicationBuilder app, string policyName, StaticFileOptions staticFileOptions)
{
app.UseWhen(context => context.Request.Path.StartsWithSegments(staticFileOptions.RequestPath), builder =>
{
builder.Use(async (ctx, next) =>
{
// Apply CORS policy to the request
var corsService = ctx.RequestServices.GetRequiredService();
var corsPolicyProvider = ctx.RequestServices.GetRequiredService();
if (await corsPolicyProvider.GetPolicyAsync(ctx, policyName) is { } corsPolicy)
{
var result = corsService.EvaluatePolicy(ctx, corsPolicy);
corsService.ApplyResult(result, ctx.Response);
}
await next();
});
});
app.UseStaticFiles(staticFileOptions);
return app;
}
}
< /code>
Пример использования: < /p>
app.UseStaticFilesWithCors("API", new StaticFileOptions
{
FileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider(webroot),
RequestPath = new PathString("/o365addon")
});
Подробнее здесь: https://stackoverflow.com/questions/797 ... pp-service