Mi aplicación comienza en una página de inicio de login
que tiene un botón para una página create-account
.
Si estoy en la página create-account
y actualizo mi navegador, vuelve a la página de inicio de login
.
¿Porqué es eso? Intenté leer la documentación para encontrar una solución, pero no estaba del todo clara. Puedo ver desde el navegador que si navego manualmente a http://localhost/create-account
, devuelve un 301 y vuelve a la página de inicio de login
. ¿Qué se debe hacer con la ruta para solucionar esto a fin de permitir que se create-account
?
Aquí está mi app-routing.module.ts
:
import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { CreateAccountComponent } from './create-account/create-account.component'; import { LoginComponent } from './login/login.component'; import { PasswordResetComponent } from './password-reset/password-reset.component'; const routes: Routes = [ { path: "login", component: LoginComponent }, { path: "create-account", component: CreateAccountComponent }, { path: "password-reset", component: PasswordResetComponent } ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule { }
Vaya, fue porque mi app.component.ts
tenía esto, y se llama para cada ruta cuando se inicializa la aplicación (primera vez que se busca):
ngOnInit() { this.router.navigate(['/login']); }
He refactorizado esto a:
ngOnInit() { }
En su lugar, también agregué un solucionador de ruta comodín al LoginComponent
de inicio de sesión, de modo que las rutas de URL que no tienen mapeo irán a la página de inicio de login
, si observa el último elemento agregado en Routes
aquí:
const routes: Routes = [ { path: "login", component: LoginComponent }, { path: "create-account", component: CreateAccountComponent }, { path: "password-reset", component: PasswordResetComponent }, { path: "**", component: LoginComponent } ];