Ich habe diese einfache Änderung aus dem Startwert versucht und die entsprechenden HTML-Dateien (z. B. index.html) erstellt.
//app.set('view engine', 'jade');
app.set('view engine', 'html');
und diese Datei blieb gleich:
exports.index = function(req, res){
res.render('index');
};
aber beim rennen bekomme ich
500 Fehler: Modul 'html' kann nicht gefunden werden
Ist meine einzige Option, 'ejs' zu verwenden? Meine Absicht war es, einfaches HTML in Verbindung mit AngularJS zu verwenden.
Antworten:
Die Antworten unter dem anderen Link funktionieren, aber um HTML bereitzustellen, muss keine Ansichts-Engine verwendet werden, es sei denn, Sie möchten ein funky Routing einrichten. Verwenden Sie stattdessen einfach die statische Middleware:
quelle
res.render()
es mehr funktionieren wird. Fügen Sie stattdessen Ihre rohen HTML-Dateien einpublic
und lassen Sie die statische Middleware die Dateien direkt bereitstellen. Wenn Sie ausgefallenere Routen benötigen, können Sie wahrscheinlich Ihre eigene HTML-Ansichts-Engine einrichten.Führen Sie die folgenden Schritte aus, damit die Render-Engine HTML anstelle von Jade akzeptiert.
Installieren Sie Consolidate und wechseln Sie in Ihr Verzeichnis.
Fügen Sie Ihrer Datei app.js die folgenden Zeilen hinzu
Fügen Sie Ihre Ansichtsvorlagen als .html im Ordner "Ansichten" hinzu. Starten Sie Ihren Knotenserver neu und starten Sie die App im Browser.
Obwohl dies HTML ohne Probleme rendert, würde ich Ihnen empfehlen, JADE zu verwenden, indem Sie es lernen. Jade ist eine erstaunliche Template-Engine. Wenn Sie dies lernen, können Sie ein besseres Design und eine bessere Skalierbarkeit erzielen.
quelle
In deine apps.js einfach hinzufügen
Jetzt können Sie die ejs-Ansichts-Engine verwenden und gleichzeitig Ihre Ansichtsdateien als .html beibehalten
Quelle: http://www.makebetterthings.com/node-js/how-to-use-html-with-express-node-js/
Sie müssen diese beiden Pakete installieren:
Und dann benötigte Pakete importieren:
Auf diese Weise können Sie Ihre Ansichten als .html anstelle von .ejs speichern .
Ziemlich hilfreich bei der Arbeit mit IDEs, die HTML unterstützen, aber EJs nicht erkennen.
quelle
Versuchen Sie dies für Ihre Serverkonfiguration
Dann sehen Ihre Rückruffunktionen für Routen folgendermaßen aus:
quelle
Es ist keine Ansichts-Engine erforderlich, wenn Sie Angular mit einer einfachen HTML-Datei verwenden möchten. So geht's: In Ihrer
route.js
Datei:quelle
Ich empfehle die Verwendung von https://www.npmjs.com/package/express-es6-template-engine - extrem hellwellige und blitzschnelle Template-Engine. Der Name ist etwas irreführend, da er auch ohne expressjs funktionieren kann.
Die für die Integration
express-es6-template-engine
in Ihre App erforderlichen Grundlagen sind recht einfach und einfach zu implementieren:index.html
Datei, die sich in Ihrem Verzeichnis "Ansichten" befindet:quelle
Die Antwort ist sehr einfach. Sie müssen app.engine ('html') verwenden, um * .html-Seiten zu rendern. Versuchen Sie dies. Es muss das Problem lösen.
Die HTML-Datei funktioniert
quelle
HTML-Dateien können mit der ejs engine gerendert werden:
Und stellen Sie sicher, dass Ihre Dateien unter "/ views" mit ".ejs" benannt sind.
Zum Beispiel "index.ejs".
quelle
Kommentieren Sie die Middleware für HTML aus, dh
Verwenden Sie stattdessen:
quelle
HTML ist keine Ansichts-Engine, aber ejs bietet die Möglichkeit, HTML-Code darin zu schreiben
quelle
Um HTML-Seiten durch Routing zu bedienen, habe ich dies getan.
und meine .html-Dateien in .hbs-Dateien umbenannt - Lenker unterstützen einfaches HTML
quelle
Führen Sie die folgenden Schritte aus, damit die Render-Engine HTML anstelle von Jade akzeptiert.
Das sollte funktionieren
quelle
Probieren Sie diese einfache Lösung aus, sie hat bei mir funktioniert
quelle
Installieren Sie die ejs-Vorlage
npm install ejs --save
Verweisen Sie auf ejs in app.js.
Erstellen Sie eine EJS-Vorlage in Ansichten wie views / indes.ejs und verwenden Sie EJS-Tempalte im Router
quelle
Rendern Sie die HTML-Vorlage mit Hilfe von swig.
quelle
HTML-Dateien müssen nicht gerendert werden.
Eine Render-Engine wandelt eine Datei, die keine HTML-Datei ist, in eine HTML-Datei um.
Um eine HTML-Datei zu senden, gehen Sie einfach wie folgt vor:
Möglicherweise müssen Sie verwenden,
__dirname+"/index.html"
damit express den genauen Pfad kennt.quelle