Que tal Luis,
Eso es porque tu servidor web en producción le falta una configuración para que administre correctamente el manejo de rutas con una Single Page Application.
Para ello dependiendo el servidor web la configuración va a variar ligeramente.
Nginx
Para nginx lo que procede es lo siguiente:
La configuración la colocarías en tu archivo default.conf (en caso de que no tengas más virtual hosts o bien en tu archivo .conf correspondiente a tu aplicación) es la que sigue:
location / {
try_files $uri $uri/ /index.html;
}
Mira por ejemplo este es el archivo de configuración que tenemos para http://pangular.webtraining.zone el cual lo tenemos en /etc/nginx/sites-enabled/pangular.webtraining.zone
:
server {
listen 80;
root /var/www/pangular.webtraining.zone/curso-profesional-real-time-front-end-octubre-2017/dist;
index index.html index.htm index.nginx-debian.html;
server_name pangular.webtraining.zone www.pangular.webtraining.zone;
location / {
try_files $uri $uri/ /index.html;
}
}
Apache web server
En este caso en el archivo de configuración de tu host, colocaríamos este tipo de reglas (ojo: hay que habilitar el módulo de reescritura de apache para que funcione correctamente) :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
Saludos