Aller au contenu principal
Kill -9 Club
Se connecter

routage côté client et le repli sur index.html

Web

Dans un build Vite ou React, dist/ contient index.html, un dossier assets/ et rien d'autre. /a-propos n'est pas un fichier : React Router l'invente dans le navigateur après le chargement d'index.html, en réécrivant la barre d'adresse. Un visiteur qui ouvre https://exemple.fr/a-propos directement, ou qui recharge simplement la page, demande donc à Nginx un chemin qui n'a jamais existé sur le disque. Le try_files $uri $uri/ =404 ne trouve rien et renvoie le 404 : on accuse alors le déploiement, ou le routeur, qui fonctionne exactement comme prévu. Un serveur web ne connaît aucune route inventée par le navigateur. La correction tient en un terme : try_files $uri $uri/ /index.html. Les fichiers qui existent l'emportent toujours, et tout le reste reçoit l'application, qui lit l'URL elle-même et affiche la bonne vue.

Aussi écrit : repli index.html, history fallback, routage SPA, try_files /index.html