使用Express+Node.js时Handlebars页面无法渲染的问题求助
问题解决:Handlebars页面渲染空白
核心原因
你的main.handlebars布局文件里没加{{{body}}}占位符——这是Handlebars用来插入页面(比如Login.handlebars)内容的关键标记。渲染页面时,Handlebars会把页面内容替换到布局的这个位置,没有它的话,页面内容根本不会显示,只会输出布局里的内容(如果布局为空就是空白)。
修复步骤
1. 补全布局文件的占位符
打开views/layouts/main.handlebars,添加{{{body}}},示例代码:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>登录页面</title> </head> <body> {{{body}}} <!-- 这里会自动替换成Login.handlebars里的内容 --> </body> </html>
2. (可选)优化Express视图配置
你当前把app.set('views')指向了views/pages,其实可以直接指向根views目录,因为你的handlebars实例已经单独配置了页面、布局、组件的路径,这样更符合常规项目结构:
// 替换原来的app.set('views', ...)代码 app.set('views', path.join(__dirname, 'views'));
验证
修改完重启服务,访问/user/login就能看到Login.handlebars里的<p>Hello World</p>内容了。
内容的提问来源于stack exchange,提问作者user19892310
相关产品推荐
相关产品推荐

