Le déploiement d'une application Vite/React sur les pages GitHub est une étape passionnante, mais le processus peut parfois s'accompagner de défis inattendus, en particulier lorsqu'il s'agit de gérer des images et des ressources. Cet article de blog vous guidera tout au long du processus, du déploiement initial au dépannage des problèmes courants et à la recherche de solutions efficaces.
Que vous soyez débutant ou expérimenté, ce guide vous aidera à éviter les pièges courants et à déployer avec succès votre application Vite/React avec tous les éléments correctement rendus.
Avant de commencer, assurez-vous d'avoir les éléments suivants :
Tout d'abord, assurez-vous que votre application Vite/React est correctement initialisée et fonctionne sur localhost. Vous pouvez créer un projet Vite de base comme suit :
npm create vite@latest
Installer les dépendances :
npm install
Exécutez le projet localement pour confirmer que tout fonctionne :
npm run dev
Une fois votre projet prêt, transférez-le vers votre référentiel GitHub.
GitHub Pages s'attend à ce que l'application soit servie à partir d'une URL de base spécifique, qui est généralement le nom de votre référentiel. Mettez à jour le fichier vite.config.js pour refléter ceci :
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' export default defineConfig({ base: process.env.NODE_ENV === 'production' ? '/your-repo-name/' : '/', plugins: [react()], })
L'option de base garantit que l'application utilise le chemin de base correct lors du déploiement.
Vous devrez installer le package gh-pages pour gérer le déploiement.
npm install gh-pages --save-dev
Dans votre package.json, ajoutez les scripts suivants pour automatiser le processus de déploiement :
"scripts": { "predeploy": "npm run build", "deploy": "gh-pages -d dist" }
Exécuter le déploiement :
npm run deploy
À ce stade, votre projet devrait être en ligne sur https://
Après le déploiement, vous remarquerez peut-être que l'application charge une page vierge. Cela est souvent dû à des problèmes de routage. Par défaut, BrowserRouter de réagir-router-dom est utilisé, qui repose sur le routage côté serveur, mais GitHub Pages sert des fichiers statiques et ne gère pas les routes côté client.
Solution : utiliser HashRouter
Pour résoudre ce problème, passez de BrowserRouter à HashRouter dans votre fichier index.js ou main.jsx.
import { HashRouter } from 'react-router-dom'; createRoot(document.getElementById('root')).render();
HashRouter utilise un symbole de hachage (#) dans l'URL pour suivre l'état de la navigation, permettant aux pages GitHub de desservir correctement différents itinéraires sans renvoyer un 404.
Après avoir résolu le problème de page vierge, un autre problème auquel vous pourriez être confronté est que l'application fonctionne sur la page d'accueil mais affiche une erreur 404 lors de la navigation vers d'autres itinéraires, surtout si vous accédez directement à un itinéraire comme /blogs ou /projects.
Cela se produit parce que GitHub Pages sait uniquement comment servir le fichier index.html et ne reconnaît pas les routes gérées par React Router.
Solution : gérer les erreurs 404 dans les paramètres des pages GitHub
Pour résoudre ce problème, vous devez créer un fichier 404.html dans votre dossier public/. Ce fichier garantira que GitHub Pages sert votre fichier index.html pour toutes les routes qu'il ne reconnaît pas, permettant à React Router de gérer le routage :
L'un des problèmes de déploiement les plus courants est le chargement incorrect des images. Bien qu'ils fonctionnent correctement sur localhost, vous remarquerez peut-être des liens d'image rompus après le déploiement sur les pages GitHub.
Par exemple, vous pouvez référencer une image comme celle-ci dans vos composants :
Problème : chemins d'image incorrects
Le problème ici est que les chemins absolus (commençant par /) ne fonctionnent pas bien lorsque l'application est déployée dans un sous-répertoire (par exemple, /your-repo-name/). GitHub Pages essaie de trouver l'image sur https://
Solution : utilisez BASE_URL
Pour résoudre ce problème, déplacez toutes vos images vers Public/Images, bien que cela soit facultatif, je vous recommande fortement de le faire. Vous ajouterez dynamiquement la BASE_URL aux chemins d'image en fonction de l'environnement :
const BASE_URL = import.meta.env.BASE_URL;
Cela garantit que le chemin correct est utilisé à la fois en développement (localhost) et en production (pages GitHub).
Après avoir implémenté les correctifs pour le routage et les chemins d'image, reconstruisez et redéployez votre application :
npm run build npm run deploy
Votre application Vite/React devrait maintenant être entièrement déployée avec toutes les images correctement rendues et toutes les routes correctement gérées.
En résumé:
Avec ces étapes, votre application Vite/React devrait être active et fonctionner correctement sur les pages GitHub. Bon codage et déploiement !
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3