繁体   English   中英

EJS无法渲染

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM