Невозможно установить заголовок HTTP в ядре asp.net для файлов SPA - PullRequest
0 голосов
/ 30 января 2019

Требуется установить заголовки HTTP при обслуживании файлов, которые являются частью приложения SPA в ASP.Net core 2.2, при запуске из командной строки напрямую (с использованием Kestrel).

Следуя инструкциям на https://github.com/aspnet/AspNetCore/issues/3147#issuecomment-435617378, Я не могу запустить события StaticFileOptions.OnPrepareResponse.Заголовки не устанавливаются, и даже точки останова не срабатывают.

Statup.Configure() выглядит так:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Error");
    }

    app.UseStaticFiles();
    app.UseSpaStaticFiles(new StaticFileOptions
    {
        OnPrepareResponse = ctx =>
        {
            ctx.Context.Response.Headers.Add("Hello", "World"); // Never triggers
        }
    });

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller}/{action=Index}/{id?}");
    });

    app.UseSpa(spa =>
    {
        spa.Options.SourcePath = "ClientApp";
        spa.Options.DefaultPageStaticFileOptions = new StaticFileOptions
        {
            OnPrepareResponse = ctx =>
            {
                ctx.Context.Response.Headers.Add("Hello", "World"); // Never triggers
            }
        };

        if (env.IsDevelopment())
        {
            spa.UseAngularCliServer(npmScript: "start");
        }
    });
}

1 Ответ

0 голосов
/ 31 января 2019

Оказывается, что события не запускаются при запуске сервера угловой разработки.Эти строки были причиной:

if (env.IsDevelopment())
{
    spa.UseAngularCliServer(npmScript: "start");
}

Комментируя это или изменяя переменную окружения ASPNETCORE_ENVIRONMENT, добились цели.

...