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 } ];