J'ai une application web classique rendue sur le serveur. Je souhaite créer un panneau d'administration en tant qu'application d'une seule page dans React. Je veux serveur panneau d'administration de https://smyapp.example.com/admin/ . J'essaie d'utiliser create-react-app
mais cela suppose que je sers SPA depuis l'URL racine. Comment dois-je configurer create-react-app
pour servir l'application à partir du sous-répertoire "admin"
? Dans la documentation, j'ai trouvé la propriété "homepage"
, mais si je comprends bien, elle nécessite une URL complète. Je ne peux pas donner d'URL complète car mon application est déployée dans quelques environnements.
Vous devriez ajouter une entrée dans package.json
pour cela.
Ajoutez une clé "homepage": "votre-sous-dossier /" dans votre package.json Tous les fichiers statiques seront chargés depuis "votre-sous-dossier"
S'il n'y a pas de sous-dossier et que vous devez charger à partir du même dossier, vous devez ajouter le chemin d'accès sous "./".
"homepage": "./"
De ici
mettez dans package.json quelque chose comme ceci:
"homepage": " http: // localhost: 3000/sous-dossier ",
et fonctionne correctement sur n’importe quel serveur public ou local. Bien sûr, le sous-dossier doit être votre dossier.
Vous pourriez peut-être utiliser react-router
et son paramètre relativebasename
qui vous permettent de servir votre application à partir d'un sous-répertoire.
basename
est l'URL de base pour tous les emplacements. Si votre application est diffusée à partir d'un sous-répertoire sur votre serveur, vous souhaiterez définir ce paramètre dans le sous-répertoire. Un nom de base correctement formaté doit avoir une barre oblique, mais pas de barre oblique.
Par exemple :
<BrowserRouter basename="/calendar"/>
Donc, <Link to="/today"/>
rendra <a href="/calendar/today">
Voir: https://reacttraining.com/react-router/web/api/BrowserRouter/basename-string
Bonne journée!