angular angular2-routing

¿Se rompe el enrutador de Angular 2 cuando se usan rutas HTML5?



angular2-routing (2)

Esta pregunta ya tiene una respuesta aquí:

Toda esta nueva sintaxis de rutas sonaba demasiado buena para ser verdad y ahora creo que en realidad lo es. Dejé de intentar hacerlo funcionar y aquí me doy cuenta de que ni siquiera funciona el ejemplo principal en la página Angular 2. Si abre el ejemplo en vivo y lo prueba, simplemente haciendo clic en él funciona bien y puede ver que la ruta en la url cambia, pero solo está cambiando la Cadena, la ruta realmente no existe, si copia su url y la envía a alguien obtendrán el siguiente error:

{ "statusCode": 404, "error": "Not Found" }

Demonios, incluso si solo actualiza la página, obtendrá el mismo error.

Si desea reproducir el problema, abra esta URL:

https://angular.io/resources/live-examples/tutorial/ts/plnkr.html

Haga clic en el botón "Iniciar la vista previa en una ventana separada" en la parte superior derecha de la vista previa en vivo, espere a que cargue la página y cuando vea que la URL cambia a algo como:

http://run.plnkr.co/KMzM8hkaCyhlnf3b/dashboard

haz un F5 para actualizar la página y obtendrás el error.

¿Es esto un error, es la forma en que se supone que funciona, o algo que ni siquiera intentaron? ¿Ya están comenzando una vez más con una mala implementación del enrutador o simplemente estoy totalmente perdido en cómo estoy tratando de que funcione? Por favor aconséjame !

Supongo que es mejor usar la implementación de hashtag.


Así está diseñado (por HTML5 y no introducido por Angular). Cambie a HashLocationStrategy o use un servidor que sepa cómo manejar (redirigir) tales solicitudes. Ver también github.com/angular/angular/issues/4735


De hecho, es normal que tenga un error 404 al cargar su aplicación ya que la dirección real dentro del navegador se está actualizando (y sin el enfoque # / hashbang). Por defecto, el historial HTML5 se usa para reutilizar en Angular2.

Si no desea tener un error 404, debe actualizar su servidor para que sirva el archivo index.html para cada ruta de ruta.

Este enlace también podría ayudarlo: cuando actualizo mi sitio web obtengo un 404. Esto es con Angular2 y firebase .

Espero que te ayude, Thierry