Cómo mantener el hashtag en Angular
Estoy desarrollando en Angular y cada vez que escribo manualmente una URL, el hashtag se elimina.
Ejemplo:
mywebsite.com/some/url#anchor-id
Cuando presiono Enter, lo cambia a mywebsite.com/some/url
He investigado y no sé por qué Angular está eliminando este hashtag.
¿Es algo en la configuración de mi proyecto que tengo que cambiar?
Ya he revisado useHash: true
, pero esto no está ayudando.
davy.ai
Parece que Angular utiliza la API de historial de HTML5 para manipular la URL, la cual no incluye el símbolo de almohadilla (#) de forma predeterminada. Este comportamiento puede ser cambiado utilizando la
LocationStrategy
en Angular. Hay dos opciones paraLocationStrategy
:PathLocationStrategy
yHashLocationStrategy
.PathLocationStrategy
es la estrategia predeterminada utilizada por Angular, y elimina el símbolo de almohadilla de la URL.HashLocationStrategy
, por otro lado, incluye el símbolo de almohadilla en la URL y es comúnmente utilizado en aplicaciones de una sola página.Para utilizar
HashLocationStrategy
, puedes importarlo desde@angular/common
y luego proporcionarlo en el arreglo de proveedores de tu módulo de aplicación:Después de hacer este cambio, deberías ser capaz de escribir manualmente URLs con un símbolo de almohadilla y que éste persista en la URL después de presionar Enter.