Ich habe eine mean-stack
Anwendung. Unter https://localhost:3000/#/home
lautet es views/index.ejs
. Hier ist die Einstellung in app.js
:Verwenden Sie "index.html" statt "index.ejs"
var app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'public')));
app.all('/*', function(req, res, next) {
res.sendFile('index.ejs', { root: __dirname });
});
Eigentlich habe ich die Funktion nicht von ejs
in index.ejs
verwenden. So, jetzt möchte ich nur eine index.html
anstatt index.ejs
verwenden.
Ich legte den Inhalt von index.ejs
in public/htmls/index.html
und views/index.html
. Und hier ist die aktuelle Einstellung in app.js
:
var app = express();
// app.set('views', path.join(__dirname, 'views'));
// app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'public')));
app.all('/*', function(req, res, next) {
res.sendFile('index.html', { root: __dirname });
// res.sendFile('index.html'); // does not work either
});
Allerdings läuft https://localhost:3000/#/home
kehrt
Error: No default engine was specified and no extension was provided.
Weiß jemand, wie man es beheben?
Edit 1:, indem Sie die Antwort von user818510
, versuchte ich res.sendFile('index.html', { root: path.join(__dirname, 'views') });
in app.js
, ist es noch nicht index.html
finden.
Während in routes/index.js
das Folgende index.html
finden kann, aber es gibt eine Warnung express deprecated res.sendfile: Use res.sendFile instead routes/index.js:460:9
.
var express = require('express');
var router = express.Router();
var path = require('path');
... ...
router.get('*', function(req, res) {
res.sendfile('./views/index.html'); // works, but a deprecation warning
// res.sendFile('index.html', { root: path.join(__dirname, 'views') }); does not work
});
Es ist wirklich verwirrend ...
Wenn Sie ejs nicht verwenden möchten und nur html verwenden möchten, versuchen Sie, diese Dateien als statischen Inhalt zu liefern – Santosh
Versuchen Sie 'app.set ('view engine', 'html')' .. Entschuldigung, hier ist der Link http://stackoverflow.com/questions/17911228/how-doi-i-use-html-as-the-view-engine-in-express – Santosh
Es gibt 'Fehler: Kann Modul 'html' nicht finden' – SoftTimur