Die Bereitstellung einer Vite/React-Anwendung auf GitHub Pages ist ein aufregender Meilenstein, aber der Prozess kann manchmal mit unerwarteten Herausforderungen verbunden sein, insbesondere beim Umgang mit Bildern und Assets. Dieser Blogbeitrag führt Sie durch den gesamten Prozess, von der ersten Bereitstellung über die Fehlerbehebung bei häufigen Problemen bis hin zur Erzielung effektiver Lösungen.
Egal, ob Sie Anfänger oder jemand mit Erfahrung sind, dieser Leitfaden hilft Ihnen, häufige Fallstricke zu vermeiden und Ihre Vite/React-App erfolgreich bereitzustellen, wobei alle Assets ordnungsgemäß gerendert werden.
Bevor wir eintauchen, stellen Sie sicher, dass Sie Folgendes haben:
Stellen Sie zunächst sicher, dass Ihre Vite/React-Anwendung ordnungsgemäß initialisiert ist und auf localhost funktioniert. Sie können ein einfaches Vite-Projekt wie folgt erstellen:
npm create vite@latest
Abhängigkeiten installieren:
npm install
Führen Sie das Projekt lokal aus, um zu bestätigen, dass alles funktioniert:
npm run dev
Sobald Ihr Projekt fertig ist, übertragen Sie es in Ihr GitHub-Repository.
GitHub Pages erwartet, dass die Anwendung von einer bestimmten Basis-URL bereitgestellt wird, bei der es sich normalerweise um Ihren Repository-Namen handelt. Aktualisieren Sie die Datei vite.config.js, um Folgendes widerzuspiegeln:
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' export default defineConfig({ base: process.env.NODE_ENV === 'production' ? '/your-repo-name/' : '/', plugins: [react()], })
Die Basisoption stellt sicher, dass die Anwendung bei der Bereitstellung den richtigen Basispfad verwendet.
Sie müssen das gh-pages-Paket installieren, um die Bereitstellung durchzuführen.
npm install gh-pages --save-dev
Fügen Sie in Ihrer package.json die folgenden Skripte hinzu, um den Bereitstellungsprozess zu automatisieren:
"scripts": { "predeploy": "npm run build", "deploy": "gh-pages -d dist" }
Führen Sie die Bereitstellung aus:
npm run deploy
Zu diesem Zeitpunkt sollte Ihr Projekt unter https://
Nach der Bereitstellung stellen Sie möglicherweise fest, dass die App eine leere Seite lädt. Dies wird häufig durch Routing-Probleme verursacht. Standardmäßig wird BrowserRouter von „react-router-dom“ verwendet, der auf serverseitigem Routing basiert, aber GitHub Pages stellt statische Dateien bereit und verarbeitet keine clientseitigen Routen.
Lösung: HashRouter verwenden
Um dieses Problem zu lösen, wechseln Sie in Ihrer index.js- oder main.jsx-Datei von BrowserRouter zu HashRouter.
import { HashRouter } from 'react-router-dom'; createRoot(document.getElementById('root')).render();
HashRouter verwendet ein Hash-Symbol (#) in der URL, um den Navigationsstatus zu verfolgen, sodass GitHub Pages verschiedene Routen ordnungsgemäß bereitstellen kann, ohne einen 404-Fehler zurückzugeben.
Nachdem Sie das Problem mit der leeren Seite behoben haben, besteht möglicherweise ein weiteres Problem darin, dass die App auf der Startseite funktioniert, beim Navigieren zu anderen Routen jedoch einen 404-Fehler anzeigt, insbesondere wenn Sie direkt auf eine Route wie /blogs oder /projects zugreifen.
Dies geschieht, weil GitHub Pages nur weiß, wie die Datei index.html bereitgestellt werden soll, und keine von React Router verwalteten Routen erkennt.
Lösung: Behandeln Sie 404-Fehler in den GitHub-Seiteneinstellungen
Um dies zu beheben, müssen Sie eine 404.html-Datei in Ihrem öffentlichen/-Ordner erstellen. Diese Datei stellt sicher, dass GitHub Pages Ihre index.html-Datei für alle Routen bereitstellt, die es nicht erkennt, sodass React Router das Routing übernehmen kann:
Eines der häufigsten Bereitstellungsprobleme ist, dass Bilder nicht richtig geladen werden. Während sie auf localhost einwandfrei funktionieren, werden Ihnen nach der Bereitstellung auf GitHub-Seiten möglicherweise fehlerhafte Bildlinks auffallen.
Sie könnten beispielsweise in Ihren Komponenten auf ein Bild wie dieses verweisen:
Problem: Falsche Bildpfade
Das Problem hierbei ist, dass absolute Pfade (beginnend mit /) nicht gut funktionieren, wenn die App in einem Unterverzeichnis bereitgestellt wird (z. B. /Ihr-Repo-Name/). GitHub Pages versucht, das Bild unter https://
Lösung: BASE_URL verwenden
Um dies zu beheben, verschieben Sie alle Ihre Bilder in „Öffentlich/Bilder“. Dies ist zwar optional, ich würde Ihnen jedoch dringend empfehlen, dies zu tun. Anschließend stellen Sie die BASE_URL basierend auf der Umgebung dynamisch den Bildpfaden voran:
const BASE_URL = import.meta.env.BASE_URL;
Dadurch wird sichergestellt, dass sowohl in der Entwicklung (localhost) als auch in der Produktion (GitHub Pages) der richtige Pfad verwendet wird.
Nachdem Sie die Korrekturen für Routing und Bildpfade implementiert haben, erstellen Sie Ihre Anwendung neu und stellen Sie sie erneut bereit:
npm run build npm run deploy
Ihre Vite/React-Anwendung sollte jetzt vollständig bereitgestellt sein, alle Bilder korrekt gerendert und alle Routen ordnungsgemäß verarbeitet.
Zusammenfassung:
Mit diesen Schritten sollte Ihre Vite/React-App live sein und reibungslos auf GitHub-Seiten funktionieren. Viel Spaß beim Codieren und Bereitstellen!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3