[英]EJS not rendering
我只是用node.js上的EJS,Express.js制作了一个小模板系统,但是渲染有点wtf ...
这是我的server.js的代码:
var fs = require('fs');
var http = require('http');
var https = require('https');
//var privateKey = fs.readFileSync('sslcert/server.key', 'utf8');
//var certificate = fs.readFileSync('sslcert/server.crt', 'utf8');
//var credentials = {key: privateKey, cert: certificate};
var express = require('express');
var app = express();
app.set('view engine', 'ejs');
//Here the config of page
app.get('/', function(req, res){
//Accueil -> redirection vers un chat aléatoire
res.setHeader('Content-Type', 'text/plain');
res.status(500).send('Test !');
});
app.get('/about', function(req, res){
res.setHeader('Content-Type', 'text/plain');
res.status(500).send('Test !');
});
app.get('/auth/login', function(req,res){
res.setHeader('Content-Type', 'text/plain');
res.status(500).send('Test !');
});
app.get('/auth/register', function(req,res){
res.setHeader('Content-Type', 'text/plain');
res.status(500).send('Test !');
});
app.get('/chat', function(req,res){
res.setHeader('Content-Type', 'text/plain');
res.render('redirect.ejs', {});
})
app.get('/chat/:chatnum', function(req,res){
if(parseInt(req.params.chatnum, 10) < 101){
res.setHeader('Content-Type', 'text/plain');
res.status(500).send('Test !' + req.params.chatnum);
}
else {
res.setHeader('Content-Type', 'text/plain');
res.status(404).send('Page introuvable !!');
}
});
app.use(function(req, res, next){
res.setHeader('Content-Type', 'text/plain');
res.status(404).send('Page introuvable !');
});
var httpServer = http.createServer(app);
//var httpsServer = https.createServer(credentials, app);
httpServer.listen(8080);
//httpsServer.listen(8443);
(我目前已禁用https)
因此,如果有人知道为什么它不将html呈现为html而是呈现为文本...
提前致谢...
编辑:PS,您可以在浏览器中看到模板代码,就像在文件redirecting.ejs中一样。编辑2:为redirect.ejs添加代码格式
<!DOCTYPE html>
<html>
<head>
<title>Redirecting...</title>
</head>
<body>
<h1 style="text-align: center">Redirecting...</h1>
<script>window.location.href = "/ + " (Math.random().trunc() * 100) + 1</script>
</body>
</html>
标头内容类型不应为“文本/纯文本”。 您可以删除行res.setHeader('Content-Type', 'text/plain');
对于所有需要发送html的路由。
请注意,响应已缓存,并且如果内容没有更改,但是标头更改了,您将看不到更改。
您可以使用ctrl+F5
强制重新加载页面。
删除res.setHeader('Content-Type', 'text/plain');
任何应返回HTML的响应中的行。
这样,浏览器将知道呈现它,而不是显示原始文本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.