【发布时间】:2019-01-30 16:53:00
【问题描述】:
在直接从命令行运行(使用 Kestrel)时,在 ASP.Net core 2.2 中提供属于 SPA 应用程序一部分的文件时,希望设置 HTTP 标头。
按照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");
}
});
}
【问题讨论】:
标签: asp.net-core single-page-application