Angular 寫 404 頁面很簡單,跟 Vue 類似。
在 Route 的 path 填上兩個 * 字號就行了!
直接看程式碼:
app.routes.tsimport { Routes } from '@angular/router';
import { authGuard, publicGuard } from '@app/core/guards/global.guard';
import { NotFound } from './pages/not-found/not-found.ts';
export const routes: Routes = [
{
path: 'login',
canActivate: [publicGuard],
loadComponent: () => import('./pages/login/login.component').then(m => m.LoginComponent),
},
{
path: '',
canActivate: [authGuard],
loadComponent: () => import('./pages/home/home.component').then(m => m.HomeComponent),
},
{
path: '**',
component: NotFound,
},
];
not-found.tsimport { Component, inject } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'app-not-found',
standalone: true,
template: `
<div class="not-found-container">
<h1>404</h1>
<p>找不到您要存取的頁面</p>
<button (click)="goHome()">返回首頁</button>
</div>
`,
styles: [`
.not-found-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
text-align: center;
}
`]
})
export class NotFound {
private readonly router = inject(Router);
protected goHome(): void {
this.router.navigate(['/']);
}
}