> Faqs > Enlaces profundos en una SPA creada con Angular no funcionan

Enlaces profundos en una SPA creada con Angular no funcionan

Hola que tal.

Tengo el siguiente inconveniente en una aplicación SPA (Single Page Application) desarrollada con Angular:

Si escribo en el navegador localhost:4200/artículos, o cualquier otra ruta, funciona bien. Pero si lo hago en el servidor de producción no funciona.

https://example.com/articulos

Sale: File not found.

¿Alguna idea que puede ser o porque sucede?

Lo mismo pasa si comparto el enlace en alguna de las redes sociales o envio el enlace por email. ¿Me pueden ayudar por favor?

Gracias Miguel Angel, con el .htacces se solucionaó,

Respuestas

Imposible con lo que nos dices saber lo que sucede.

Tendrías que repasar los errores del servidor, activando los errores en producción o revisando los log, para saber qué está funcionando mal.

Miguel Angel
1686 78 107 5

activando los errores en producción, Como lo hago?

Gracias Miguel Angel por responder.

Ye cuento, hice un sitio web estático con angular 10, en localhost funciona perfectamente, ya sea que haga click en el menú, o escriba directamente la url en el navegador.

Hasta ahí todo bien.

Después lo compilo, ng build --prod

y subo el contenido de la carpeta dis/misitio al servidor en public_html

Todo funciona bien desde los enlaces del menú, pero si envió un enlace a un amigo o lo publico en facebook, este enlace no funciona y sale File not found.

Puedes probar desde aquí. https://mipesoideal.com/articulos

Me puedes ayudar por favor

Claudio A.
0

Ahora se entiende mejor tu pregunta... Por favor, lo que tienes que hacer es editar la pregunta que hiciste, en lugar de crear nuevas respuestas.

El caso es que estás sirviendo una SPA (single page application), entiendo, con su propio sistema de routing y esas cosas. En realidad los servidores no suelen estar preparados "de manera predeterminada" para servir correctamente una SPA y ocurre lo que tú comentas, que la navegación funciona correctamente si entramos primero en el index y vamos navegando por secciones, y no funciona bien cuando accedemos a una ruta profunda desde el inicio.

Para solucionar esto tienes que configurar el servidor web donde está alojada tu página. Si es un hosting compartido posiblemente puedas usar el archivo .htaccess para arreglarlo. Echa un vistazo en esta página de Github a ver si ese código te sirve. De todos modos, si los del servicio técnico del lugar donde tengas el alojamiento son majetes, posiblemente te digan cómo hacer para que en sus servidores funcione bien una SPA.

Si el servidor es tuyo, entonces puedes incluso modificar la configuración del servidor a tus anchas. Igual este otro post de Github te da soluciones fácilmente.

Otra solución es usar Service Worker o usar algún hosting especializado en SPA como el que ofrecen en Firebase o Netlify.

Espero que desde aquí puedas tirar del hilo para encontrar tu solución. Publica la respuesta por favor, si es que llegas a una forma de resolverlo más concreta.

Miguel Angel
1686 78 107 5