Mit nginx möchte ich die URL beibehalten, aber tatsächlich dieselbe Seite laden, egal was passiert. Ich werde die URL mit verwenden History.getState()
, um die Anfragen in meiner Javascript-App weiterzuleiten. Es scheint, als sollte es eine einfache Sache sein?
location / {
rewrite (.*) base.html break;
}
funktioniert, aber leitet die URL um? Ich brauche immer noch die URL, ich möchte nur immer die gleiche Seite verwenden.
javascript
nginx
history
Prisma von allem
quelle
quelle
Antworten:
Ich denke, das wird es für Sie tun:
quelle
try_files '' /base.html;
(leere Zeichenfolge als erstes Argumenttry_files
) wird die Suche nach einer aufgerufenen Datei vermieden$uri
.try_files '' /base.html;
gab mir ein Umleitungsproblem und einen internen Serverfehler, aber das Ändern, um das zu behebentry_files '' /base.html =404;
, wenn es jemandem hilft.Die Verwendung
try_files
hat bei mir einfach nicht funktioniert - sie hat einen Fehler beim Umschreiben oder beim internen Umleitungszyklus in meinen Protokollen verursacht.Die Nginx-Dokumente enthielten einige zusätzliche Details:
http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files
Also habe ich folgendes verwendet:
quelle
try_files '' /base.html =404;
(siehe oben)location = /base.html { expires 30s }
Teil eigentlich nicht .Ihr ursprüngliches Umschreiben sollte fast funktionieren. Ich bin nicht sicher, warum es umleiten würde, aber ich denke, was Sie wirklich wollen, ist gerecht
Sie sollten in der Lage sein, dies an einem Ort oder direkt auf dem Server abzulegen.
quelle
Das hat bei mir funktioniert:
Dadurch konnte ich eine Sammel-URL für eine einseitige Javascript-App erstellen. Alle statischen Dateien wie CSS, Schriftarten und Javascript, die von erstellt wurden
npm run build
, werden gefunden, wenn sie sich im selben Verzeichnis wie befindenindex.html
.Wenn sich die statischen Dateien aus irgendeinem Grund in einem anderen Verzeichnis befinden, benötigen Sie außerdem Folgendes:
quelle
Das hat bei mir funktioniert:
quelle
Der richtige Weg wäre:
Mit
last
wird Nginx einen neuen geeignetenlocation
Block finden, der dem Ergebnis des Umschreibens entspricht.try_files
ist auch ein absolut gültiger Ansatz für dieses Problem.quelle