问题描述:在使用Angular应用和.NET Core进行开发时,可能会发现路由无法正常工作。这就可能导致用户在导航到应用程序的不同页面时遇到错误或404错误页面。
为了解决这个问题,我们可以尝试以下步骤:
import {Routes, RouterModule} from '@angular/router';
...
const appRoutes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'contact', component: ContactComponent },
... // more routes here
];
...
@NgModule({
imports: [
BrowserModule,
RouterModule.forRoot(appRoutes)
],
...
})
export class AppModule { }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapFallbackToFile("index.html");
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapFallbackToFile("index.html", new StaticFileOptions
{
OnPrepareResponse = ctx =>
{
// do not cache index.html
ctx.Context.Response.Headers.Add("Cache-Control", "no-cache, no-store");
ctx.Context.Response.Headers.Add("Expires", "-1");
}
});
});
}
通过以上步骤,我们就可以成功解决Angular应用与.NET Core路由不工作的问题了。