Wenn ich Seite auf Indexroute (/
) und Anmeldeseite (/login
) aktualisiere, funktioniert es gut.Konnte nicht korrekte statische Dateien nach dem Auffrischen außer der Indexseite erhalten
Allerdings wird meine Website Fehler, wie ich auf anderen Routen aktualisieren, zum Beispiel /user/123456
.
Da egal, was die Anfrage ist, erhält der Browser immer HTML-Datei.
So sind beide der Inhalt in main.css
und main.js
HTML, und der Browser Fehler.
Ich habe bereits die Readme von create-reagieren-App.
Ob ich serve Paket ($serve -s build -p 80
) oder Express verwende, wird es den seltsamen Fehler erzeugen.
Folgende ist mein Server-Code:
//server.js
const express = require('express');
const path = require('path');
app.use(express.static(path.join(__dirname, 'build')));
app.get('/*', (req, res) => {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
const PORT = process.env.PORT || 80;
app.listen(PORT,() => {
console.log(`Production Express server running at localhost:${PORT}`);
});
Edit: Ich habe herausgefunden, wo das Problem verursacht hat.
Ich habe ein neues Projekt erstellt und es mit meinem verglichen. Der Pfad der statischen Dateien im neuen Projekt ist absolut, aber in meinem Projekt ist relativ.
Als Ergebnis lösche ich "homepage": "."
in package.json
.
//package.json
{ ....
dependencies:{....},
....,
- "homepage": "."
}
Alles funktioniert wie erwartet jetzt. Wie bin ich sorglos ...
Es wäre hilfreich, Ihre Webpack-Konfiguration und index.html –
@ promisified Dank für die Antwort zu sehen. Ich benutze create-react-app um zu entwickeln und zu bauen. sollte ich ablehnen? – SHZhao74
Versuchen Sie, die vom Build-Skript erstellten statischen Dateien bereitzustellen? Wenn nicht, bin ich mir nicht sicher, warum Sie express benötigen, um Dateien zu liefern, da create react app den webpack dev server in Entwicklung verwendet? –