C# 带有angular模板的asp.net core 3.1不再能够响应404,并且始终重定向到spa index.html页面

C# 带有angular模板的asp.net core 3.1不再能够响应404,并且始终重定向到spa index.html页面,c#,angular,asp.net-core,razor,C#,Angular,Asp.net Core,Razor,我有一个asp.net core 3.1项目和razor页面。我添加了一个带有angular with的spa,这样应用程序就是/app下的服务器。现在,任何不存在的路由都会返回spa index.html页面,而不是404 我的angular应用程序上没有任何客户端路由 如果没有与razor页面、api和/app匹配的路由,我希望的行为是使用404进行响应 但是,当我键入localhost:5000/不存在的路由时,应用程序会重定向到我的angular index.html应用程序,这不是所需

我有一个asp.net core 3.1项目和razor页面。我添加了一个带有angular with
的spa,这样应用程序就是
/app
下的服务器。现在,任何不存在的路由都会返回spa index.html页面,而不是404

我的angular应用程序上没有任何客户端路由

如果没有与razor页面、api和
/app
匹配的路由,我希望的行为是使用404进行响应

但是,当我键入
localhost:5000/不存在的路由时,应用程序会重定向到我的angular index.html应用程序,这不是所需的行为

基本上,我想防止angular应用程序的
index.html
在没有匹配路由时成为回退默认值

这是我的Startup.cs文件

公共类启动
{
公共启动(IConfiguration配置)
{
配置=配置;
}
公共IConfiguration配置{get;}
//此方法由运行时调用。请使用此方法将服务添加到容器中。
public void配置服务(IServiceCollection服务)
{
services.AddRazorPages();
services.AddControllers().AddNewtonsoftJson(选项=>{options.SerializerSettings.ReferenceLoopHandling=ReferenceLoopHandling.Ignore;});
services.AddSwaggerDocument();
services.AddHealthChecks();
//在生产中,角度文件将从此目录中提供
AddSpaStaticFiles(配置=>{configuration.RootPath=“ClientApp/dist”;});
// ...
}
public void配置(IApplicationBuilder应用程序、IWebHostEnvironment环境)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
其他的
{
app.UseExceptionHandler(“/Error”);
//默认的HSTS值为30天。您可能希望在生产场景中更改此值,请参阅https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
//app.UseHttpsRedirection();
app.UseStaticFiles();
如果(!env.IsDevelopment())
{
app.UseSpaStaticFiles();
}
app.UseOpenApi();
app.UseSwaggerUi3();
app.UseRouting();
app.UseEndpoints(端点=>
{
endpoints.MapRazorPages();
endpoints.MapControllerRoute(
名称:“默认”,
模式:“api/{controller}/{action=Index}/{id?}”);
端点。MapHealthChecks(“/health”);
});
app.UseSpa(spa=>
{
spa.Options.SourcePath=“ClientApp”;
if(env.IsDevelopment())
{
spa.UseProxyToSpadDevelopmentServer(“http://localhost:4200");
}
});
}
}

不确定是否可以在服务器端执行此操作,但可以在角度端执行此操作,如下所示:

@NgModule({
  imports: [
    NgbModule.forRoot(),
    RouterModule.forRoot([
      {
        path: '', component: MainParentComponent, children: [
            { path: '**', component: ErrorComponent } //Default redirection for invalid URLs or unauthorised URLs
        ]
      }
    ])
  ]
})

不确定是否可以在服务器端执行此操作,但可以在角度端执行此操作,如下所示:

@NgModule({
  imports: [
    NgbModule.forRoot(),
    RouterModule.forRoot([
      {
        path: '', component: MainParentComponent, children: [
            { path: '**', component: ErrorComponent } //Default redirection for invalid URLs or unauthorised URLs
        ]
      }
    ])
  ]
})
我找到了答案。这个问题应该标记的是重复的。我在上找到了答案。这个问题应该标记的是重复的。