web-dev-qa-db-fra.com

Comment dois-je configurer create-react-app pour servir les applications depuis le sous-répertoire?

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.

5
guest

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

3
kiranvj

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. 

0
ristepan

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!

0
tmaz