Ich verwende eine Reihe von statischen Routen in Node Express und erleben ein sehr seltsames Phänomen.Statisches Routing in Knoten Express
Das Routing ist so eingerichtet, dass '/list/*'
und '/setup/*'
werden auf verschiedene HTML-Dateien, in denen die Verzeichnisse Art als Speicher-ID verwendet werden, zum Beispiel Informationen über die Seite zu aktualisieren url/setup/12345
würde speichern Informationen in 12345
.
Um Skripte und ähnliches laden zu können, gibt es auch eine Route mit Regex, die /assets/
entspricht, damit url/setup/assets/script.js
ohne Routing zu setup.html
mit einer neuen Speicher-ID erreicht werden kann.
Mein Problem ist, dass dies für url/setup/assets/script.js
funktioniert, aber nicht für url/list/assets/script.js
, obwohl sie identische Routings haben.
Edit:
-url/list/assets/script.js
Navigation führt zu list.html
(unerwünschtes Verhalten)
-url/setup/assets/script.js
Navigation führt zu script.js
(wollte Verhalten)
Alle Ideen, warum/Liste/* '`wird nicht funktionieren?
Hier sind meine statischen Routen:
app.use(/assets/, express.static(wwwPath));
app.use('/list/*', function(req, res, next) {
res.sendFile('list.html', { root: wwwPath });
});
app.use('/setup/*', function(req, res, next) {
res.sendFile('setup.html', { root: wwwPath });
});
Sie wäre viel besser dran, wenn Sie nicht widersprüchliche Regeln erstellen, wo mehr als eine Regel den gleichen Pfad übereinstimmt. Momentan stimmen sowohl "/ list/*" als auch "/ assets" mit der URL überein, für die es nicht funktioniert. Wahrscheinlich ist es viel besser, eine statische Regel für '/ setup/assets' und eine weitere für'/list/assets' zu erstellen. Dann wird alles schön und klar sein ohne Überschneidungen, keine Konflikte. – jfriend00
Was meinst du genau mit "'/list/* 'wont work"? – Arbel
@Arbel - Navigieren zu URL/list/assets/script.js führt zu list.html (unerwünschtes Verhalten) Navigieren zu URL/setup/assets/script.js führt zu script.js (gewünschtes Verhalten) – Presidenten