Como resolver error 404 en servidor de producción


#1

Buenas tardes, después de varios meses desarrollando mi proyecto y llego el día de subir al servidor de producción una primera versión. He compilado el proyecto con el npm run build y :tada: perfecto, me genera un archivo index.html y una carpeta con todo el contenido estatico. Lo subo al servidor que tiene corriendo un apache y todo funciona como debe. “FELICIDAD MÁXIMA”. jeje. Todas las redirecciones dentro del proyecto las realizo con el router pero me encuentro con el siguiente problema y es que si el usuario refresca la página me da un error 404 ya que no reconoce la ruta que tiene la url.
¿Existe alguna forma de controlar esto desde vue? Por ahora la única forma que se me ocurre es controlarlo desde el htaccess creando una sentencia para que todas las url las redireccione al index.html pero debe haber algo que me permita moverme por el proyecto por url como lo hago cuando estoy en el modo dev.

Gracias de antemano. Un saludo.


#2

Hola, todo ello esta bien explicado en la documentación. Basicamente explica que si quieres tener unas urls limpias actives el modo history con el cual tu servidor tiene que redirigir todas las peticiones al index.html para que Vue pueda tomar el control.

La alternativa es usar el modo hash que elimina esos problemas pero las urls siempre iran precedidas por el hash.


#3

Perfecto! muchas gracias @miljan
La verdad la url no me termina de convencer con el # pero me evita tener que tocar la configuración de apache y me permite redireccionar a un apartado en concreto sin tener que pasar por el home.

Un saludo.