我正在尝试使用节点和把手运行一个简单的页面,但页面无法正确呈现。当我转到http://localhost:8080/时,我只是在浏览器中获取原始HTML文本。这是我的代码:
main.js
var express = require('express');
var app = express();
var handlebars = require('express-handlebars').create({defaultLayout:'main'});
app.engine('handlebars', handlebars.engine);
app.set('view engine', 'handlebars');
app.set('port', 8080);
app.get('/',function(req,res){
res.type('text/plain');
res.render('home');
});
app.listen(app.get('port'), function(){
console.log('Express started on http://localhost:' + app.get('port') + '; press Ctrl-C to terminate.');
});
home.handlebars
<h1>The Home Page</h1>
main.handlebars
<!doctype html>
<html>
<head>
<title>Demo Page</title>
</head>
<body>
{{{body}}}
</body>
</html>
我在NetBeans中运行它,但即使我尝试通过命令行执行此操作,结果也是一样。
编辑:即使是奇怪的,它在Firefox中也很好,但在IE或Chrome中却没有。
编辑2:更奇怪。如果我将端口更改为其他内容,Firefox将停止正确呈现。 Firefox仅在其端口8080时正确呈现。EDIT4:我对main.handlebars进行了更改,保存,测试了它,解除了更改并再次保存(因此它恢复到原始状态),现在Firefox也不会渲染。
EDIT5:它现在似乎正在工作,我完全不知道为什么。如果有人想仔细看看,我将文件保存在这里:https://github.com/tliss/ExerciseApp
答案 0 :(得分:0)
删除res.type('text/plain');
并重新启动服务器并清除浏览器缓存(在Chrome上,您可以使用 ctrl + F5 )。
答案 1 :(得分:0)
快递车把模板有同样的问题,请尝试
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');