Node.JS Express渲染HTML,变成显示源码 问题及解决

Node.JS渲染HTML变成显示源码问题及解决

问题

当使用Node.JS Express服务器渲染HTML页面的时候,本应该渲染出HTML页面,结果显示出了HTML的源码:
HTML渲染为源码

HTML EJS引擎渲染

在生成的express工程中,默认使用jade模板渲染HTML页面,但其方式与日常的HTML相差甚远。因此作者使用EJS作为HTML的渲染引擎,
当然,先安装ejs:

npm install ejs

在app.js中声明渲染方式:

var express = require('express');
var path = require('path');
var ejs = require('ejs');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, '/src/views'));
app.engine('html', require('ejs').__express);  
app.set('view engine', 'html');
// app.set('view engine', 'jade');

详细了解以上EJS模板调用的原理,可以简单看一下以下链接
Express使用html模板

解决渲染HTML失败问题

经过ejs模板渲染之后,但,在渲染的过程中:

var express = require('express');
var router = express.Router();

/* GET page. */
router.get('/*', function(req, res, next) {
  res.render('index');
});

module.exports = router;

就出现了HTML渲染失败的问题。
解决方法为:添加服务器返回渲染的type值res.type('html');

var express = require('express');
var router = express.Router();

/* GET page. */
router.get('/*', function(req, res, next) {
  res.type('html');
  res.render('index');
});

module.exports = router;

以上这个方法来源于:nodejs为什么把页面全部变成了源码在浏览器上显示

连接中楼主说无效,可能再进一步的步骤如下:
还有很多人说,添加以后还是不能正确渲染,那么主要是因为浏览器缓存的问题,接下来清除浏览器缓存:

在Chrome中

ctrl+shift+delete

清除所有浏览器缓存,再次刷新页面,即可:
HTML渲染成功

DONE!

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值