📜  如何在角度路由中设置 404 页面?

📅  最后修改于: 2022-05-13 01:56:34.588000             🧑  作者: Mango

如何在角度路由中设置 404 页面?

要在角度路由中设置 404 页面,我们必须首先创建一个组件,以便在发生 404 错误时显示。在下面的方法中,我们将创建一个名为PagenotfoundComponent的简单角度组件。

创建组件:运行以下命令创建pagenotfound组件。

ng generate component pagenotfound

项目结构:它看起来像这样。

实现:在该组件的 HTML 模板中添加以下代码以显示简单的 404 错误消息。

pagenotfound.component.html
    

404 Error

    

Page Not Found



app-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { PagenotfoundComponent } from 
    './pagenotfound/pagenotfound.component';
import { PostCreateComponent } from 
    './posts/post-create/post-create.component';
import { PostListComponent } from 
    './posts/post-list/post-list.component';
  
const routes: Routes = [
    { path: '', component: PostListComponent },
    { path: 'create', component: PostCreateComponent },
    { path: 'edit/:postId', 
        component: PostCreateComponent },
  
    //Wild Card Route for 404 request
    { path: '**', pathMatch: 'full', 
        component: PagenotfoundComponent },
  
];
@NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule],
    providers: []
})
export class AppRoutingModule { }


然后在路由文件中,我们必须提供这个组件路由,并使其可用于每个 404 请求。因此,在app-routing.module.ts文件中,我们必须为这个 PagenotfoundComponent 创建一个新路由。

应用程序路由.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { PagenotfoundComponent } from 
    './pagenotfound/pagenotfound.component';
import { PostCreateComponent } from 
    './posts/post-create/post-create.component';
import { PostListComponent } from 
    './posts/post-list/post-list.component';
  
const routes: Routes = [
    { path: '', component: PostListComponent },
    { path: 'create', component: PostCreateComponent },
    { path: 'edit/:postId', 
        component: PostCreateComponent },
  
    //Wild Card Route for 404 request
    { path: '**', pathMatch: 'full', 
        component: PagenotfoundComponent },
  
];
@NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule],
    providers: []
})
export class AppRoutingModule { }

说明:这里PagenotfoundComponent的路由是在 routes 数组中提供的。这里除了提供的路由之外的任何路径都由这个PagenotfoundComponent处理,并且我们的 HTML 模板显示在浏览器中。因此,现在如果有人尝试向路由数组中不存在的任何页面发送请求,那么该用户将自动导航到此PagenotfoundComponent

运行应用程序的步骤:运行以下命令启动应用程序:

ng serve

现在打开浏览器并转到http://localhost:4200,一切正常现在转到http://localhost:4200/anything,我们将得到如下所示的 404 错误。