Ich habe mehrere Antworten gelesen, aber es ist unklar, wie Express mit mehreren Ansichtsordnern arbeiten kann.Mehrere Ansichtsordner mit Node.js/Express
sagen Lassen Sie den Express App unabhängige Teile enthält, in Unterordner organisiert:
app
+partA
+views
index.html
+partB
+views
index.html
Dann setzten wir jeden Ordner als Ansicht:
app.set('views', [__dirname + '/partA/views', __dirname + '/partB/views']);
Aber wie index.html
im zweiten Ordner zugreifen?
In routes.js:
res.sendFile('index.html');
wird immer einen Teil A. senden
Auch können wir nicht den relativen Pfad verwenden:
res.sendFile('/partB/views/index.html');
den Fehler auslösen:
Error : Failed to lookup view "/partB/views/index.html" in views directories "/partA/views" or "/partB/views"
Also, wie funktioniert das? Ich weiß, der übliche Ansatz besteht darin, die Teile als Unterordner des Ansichtsordners zu gestalten, aber das ist keine Option. Ich möchte nicht für jeden Teil doppelte Ordner haben, in /views
, /public
, /lib
usw.
Ansichten für jede Anforderung wie ein Overkill scheint Einstellung ... wenn ich Sichten Sie Ansichten auf "/", bedeutet das nicht ein Sicherheitsproblem? wie in der Lage, auf Server-Dateien zugreifen – mens
Gewöhnlichen Weg ist speichern Vorlagen in 'Ansichten' (oder' Templates') Ordner. App sendet keine Vorlagen direkt über 'sendFile', sondern benutzt' res.render (Vorlagenname) '. Remotebenutzer haben also keinen Zugriff auf Vorlagen. –