Страница ошибки 404 отображается автоматически, когда приложение загружается в первый раз в Angular 14

Я создал небольшое приложение в Angular. Я пытаюсь сделать страницу ошибки 404 в этом приложении. Если пользователь ввел неправильный URL-адрес, эта страница ошибки будет отображаться автоматически.

Для этого я сделал - я создал имя отдельного компонента как «NotFoundComponent».

NotFoundComponent.html

      <h1>Page Not Found !! </h1>
<a routerLink="/">Go back to Home Page</a>

приложение-routing.module.ts

      const routes: Routes = [
  { path: 'about-us', component: AboutUsComponent },
  { path: 'how-it-works', component: HowItWorksComponent },
  { path: '**', component: NotFoundComponent },
];
@NgModule({
  imports: [
    RouterModule.forRoot(routes)
  ],
  exports: [RouterModule],
  //providers: [{provide: LocationStrategy, useClass: HashLocationStrategy}],

})
export class AppRoutingModule { }

app.module.ts

      @NgModule({
  declarations: [
    AppComponent,
    AboutUsComponent,
    HowItWorksComponent
  ],

  imports: [
    BrowserModule,
    AuthModule,
    UserModule,
    PublicModule,
    SharedModule,
    AppRoutingModule,
  ],
  providers: [],
  bootstrap: [AppComponent]
})

export class AppModule { }

Если я ввожу какой-либо неправильный URL-адрес, он работает нормально, он показывает страницу ошибки 404. т.е. NotFoundComponent.html.

Но моя проблема в том, что когда мое приложение загружается в первый раз, оно автоматически отображает страницу ошибки 404 или NotFoundComponent.html.

Вместо этого он работает нормально, я попробовал решение HashLocationStrategy в app-routing.module.ts , но оно у меня не сработает.

С моей точки зрения, я установил правильный порядок для модуля в файле app.module.ts и маршрутизации для файла app-routing.module.ts.

Любая помощь будет оценена....Спасибо!!

1 ответ

Причина в том, что ваш корневой путь не настроен в вашей конфигурации маршрутов. Таким образом, единственным маршрутом, соответствующим вашему корневому пути, является «шаблонный» маршрут, показывающийNotFoundComponent.

Чтобы решить эту проблему, вы должны определить корневой путь и назначить ему либо компонент для рендеринга, либо назначить путь перенаправления:

      const routes: Routes = [
  // either define a component to be rendered: 
  // { path: '', pathMatch: 'full', component: MyHomeComponent },
  //
  // or redirect to a different route: 
  // { path: '', pathMatch: 'full', redirectTo: '/about-us' },
  { path: 'about-us', component: AboutUsComponent },
  { path: 'how-it-works', component: HowItWorksComponent },
  { path: '**', component: NotFoundComponent },
];
Другие вопросы по тегам