So stellen Sie eine React-App auf dem Apache-Webserver bereit
Lesezeit: 7 Minuten
Vishal Dharankar
Ich habe eine grundlegende React App erstellt https://www.tutorialspoint.com/reactjs/reactjs_jsx.htm Hier möchte ich diesen Testcode auf einem Apache-basierten Server ausführen. Ich weiß, dass ich einen verteilbaren Build erstellen muss, aber ich kann nicht herausfinden, wie das geht, und konnte keine klaren Anweisungen finden.
Ich habe diesen Beitrag React,js auf dem Apache-Server gesehen, aber er enthält nicht mehr als ein paar Richtlinien
altobsom
Gehen Sie zunächst in Ihrem Reaktionsprojekt zu your Paket.json und passen Sie diese Codezeile an Ihre Zieldomänenadresse + Ordner an:
Zweitens gehen Sie zu Terminal in Ihrem Reaktionsprojekt und geben Sie Folgendes ein:
npm run build
Jetzt, alle Dateien nehmen daraus neu geschaffen bauen Ordner und lade sie dort hoch your_folder_namemit Filezilla im Unterordner wie folgt:
public_html/your_folder_name
Im Browser prüfen!
das funktioniert, ich habe gerade einen Fehler gemacht, wenn ich auf localhost einen Pfad wie “homepage” gebe: “localhost/ihreapp/build” oder verschieben Sie Ihr Build-Verzeichnis in den von Ihnen angegebenen URL-Pfad
– Wasim A.
17. Dezember 2018 um 8:41 Uhr
Meine package.json hatte kein Homepage-Feld. Nachdem ich manuell hinzugefügt hatte, funktionierte das Verfahren wie erwartet.
– mvsagar
16. Oktober 2020 um 14:23 Uhr
Funktioniert das mit React Router?
– Code
24. Dezember 2021 um 0:58 Uhr
Vishal Dharankar
Letztendlich konnte ich es herausfinden, ich hoffe nur, es wird jemandem wie mir helfen.
Im Folgenden sehen Sie, wie die Konfigurationsdatei des Webpakets aussehen sollte. Überprüfen Sie das angegebene dist-Verzeichnis und die angegebene Ausgabedatei. Mir fehlte die Möglichkeit, den Pfad des dist-Verzeichnisses anzugeben
Beachten Sie den Skriptabschnitt und den Produktionsabschnitt, der Produktionsabschnitt gibt Ihnen die endgültige bereitstellbare index.js-Datei (der Name kann beliebig sein).
Ruhen Sie sich aus, die Dinge hängen von Ihrem Code und Ihren Komponenten ab
Führen Sie die folgende Befehlsfolge aus
npm installieren
Dies sollte Ihnen alle Abhängigkeiten bringen (Knotenmodule)
dann
npm-Produktion ausführen
Dies sollte Ihnen das Finale bringen index.js Datei, die den gesamten gebündelten Code enthält
Einmal erledigt index.html und index.js Dateien unter www/html oder dem Stammverzeichnis der Web-App und das ist alles.
Außerdem ist es besser, die App im Prozessmanager zu starten, z. B. die pm2-Bibliothek. Es bietet eine automatische Wiederholung der App nach einem Absturz oder Neustart des Servers.
– PokatilovArt
1. August 2020 um 20:57 Uhr
Manoj
Gehen Sie in Ihr Projekt-Root-Verzeichnis, zB: cd /home/ubuntu/react-js.
Erstellen Sie zuerst Ihr Projekt: npm run build.
Überprüfen Sie Ihr Build-Verzeichnis, alle folgenden Dateien sind im Build-Ordner verfügbar:
Du hast mich gerettet, Mann! Mein ganzer Tag ist dafür ruiniert, jetzt kann ich schlafen! 🙂
– XpressGeek
3. Oktober 2020 um 15:40 Uhr
Müssen Sie immer neu erstellen .htaccess wenn Sie einen Neubau erstellen?
– Matt
13. April 2021 um 19:03 Uhr
Könnten Sie kommentieren, was der Sinn von Schritt 7 ist?
– Matt
11. Mai 2021 um 12:59 Uhr
Bevor Sie den npm-Build erstellen,
1) Gehen Sie zum Stammordner Ihres React-Projekts und öffnen Sie es package.json.
2) Fügen Sie das Attribut “Homepage” hinzu package.json
Die Verwendung der relativen Pfadmethode kann einen Syntaxvalidierungsfehler in Ihrer IDE anzeigen. Aber der Build wird ohne Fehler während der Kompilierung erstellt.
3) Speichern Sie die package.json und im Terminallauf npm run-script build
4) Kopieren Sie den Inhalt von build/ Ordner in Ihr Serververzeichnis.
PS: Es ist einfach, die relative Pfadmethode zu verwenden, wenn Sie den Speicherort der Build-Datei auf Ihrem Server häufig ändern möchten.
Remi Marenco
Wie im Beitrag erwähnt, ist React eine browserbasierte Technologie. Es rendert nur eine Ansicht in einem HTML-Dokument.
Um auf Ihre „React App“ zugreifen zu können, müssen Sie:
Bündeln Sie Ihre React-App in einem Bundle
Lassen Sie Apache auf Ihre HTML-Datei auf Ihrem Server verweisen und den Zugriff von außen zulassen.
Ich weiß, wie man Apache zum Laufen bringt, ich bin ein PHP-Entwickler, mein Problem ist, dass ich damit feststecke, die verteilbare Datei aus dem Quellcode zu erstellen und dann Apache für die Umleitung einzurichten
– Vishal Dharankar
25. Februar 2017 um 20:50 Uhr
Aha. Sie möchten die Javascript-Bibliothek dann mit einem Modul-Bundler (z. B. Webpack) erstellen. codementor.io/tamizhvendan/…. Ich habe auch meine Antwort an Ihre Bedürfnisse angepasst.
– Remi Marenco
25. Februar 2017 um 20:56 Uhr
Funktioniert die Weiterleitung zu anderen Seiten direkt in der URL-Leiste?
Dies mag etwas überflüssig erscheinen, aber wenn Sie andere Seiten haben, die nicht Teil Ihrer React-App sind (z. B. PHP-Seiten), können Sie alles über Port 80 bereitstellen und den Eindruck erwecken, dass das Ganze eine zusammenhängende Website ist.
1.) Starten Sie Ihre React-App mit npm run oder einem beliebigen Befehl, den Sie zum Starten des Node-Servers verwenden. Vorausgesetzt es läuft weiter http://127.0.0.1:8080
2.) Bearbeiten Sie httpd-proxy.conf und fügen Sie hinzu:
ProxyRequests On
ProxyVia On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /myreactapp http://127.0.0.1:8080/
ProxyPassReverse /myreactapp http://127.0.0.1:8080/
3.) Starten Sie Apache neu
Ich weiß, wie man Apache zum Laufen bringt, ich bin ein PHP-Entwickler, mein Problem ist, dass ich damit feststecke, die verteilbare Datei aus dem Quellcode zu erstellen und dann Apache für die Umleitung einzurichten
– Vishal Dharankar
25. Februar 2017 um 20:50 Uhr
Aha. Sie möchten die Javascript-Bibliothek dann mit einem Modul-Bundler (z. B. Webpack) erstellen. codementor.io/tamizhvendan/…. Ich habe auch meine Antwort an Ihre Bedürfnisse angepasst.
– Remi Marenco
25. Februar 2017 um 20:56 Uhr
Funktioniert die Weiterleitung zu anderen Seiten direkt in der URL-Leiste?
– Bcktr
21. Oktober 2021 um 5:08 Uhr
Wie auch in React’s Official beschrieben DokumenteWenn Sie Router verwenden, die HTML5 verwenden pushState History-API unter der Haube, Sie müssen nur den folgenden Inhalt hinzufügen .htaccess Datei in public Verzeichnis Ihrer React-App.