Implementar el website angular en los productos GitHub Error 404

Implementé un pequeño website angular estático en GitHub Link, pero tiene un problema. Cuando actualizo una página de productos como esta , obtengo el error 404.

enter image description here

Sin embargo, cuando navego a las páginas de productos de la página de inicio, las páginas del producto se abren correctamente.

El enlace reprository de esta aplicación es – aquí .

Soy principiante en angular – por favor, ¿por qué me ayuda a hacerlo?

Esto se debe a que está utilizando HTML pushState como estrategia de location debido a lo cual, cuando actualiza desde el browser, el browser envía la request de su página enrutada a Github. Como Github desconoce este routing interno por angular, muestra un error 404.

Hay un par de soluciones:
1. Si quieres mantenerte en Github, entonces debes moverte a la estrategia de location HashBased . Simplemente resolverá tu problema.
2. Si no tiene ninguna dependencia de Github, puede pasar a otros serveres (firebase o apache) que admitan la creación de un file htaccess o cualquier otro mecanismo alternativo. ( Vea este enlace para más información ). Desafortunadamente, este file htaccess aún no es compatible con Github. Yo personalmente prefiero firebase debido a estos fallos técnicos.

Con estos mecanismos alternativos quiero decir que el server networkingirige a index.html, es decir, su file HTML principal en el caso de cualquier ruta 404.

Tuve el mismo problema. O utiliza la location de la estrategia de búsqueda que encuentra aquí: https://angular.io/guide/router#appendix-locationstrategy-and-browser-url-styles

Pero luego sus URL tendrán un # adicional como: http://tudominio.com/#/productos

Si no desea, debe agregar .htaccess y volver a escribir todo en index.html.

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] </IfModule> 

Guárdelo como .htaccess en la misma carpeta donde está index.html.