Handlebars无法渲染HTML,Express环境下页面空白问题求助
Handlebars页面空白问题排查与解决
我刚接触Handlebars,目前遇到HTML完全无法渲染、页面仅显示空白的问题,怀疑是{{{body}}}标签未被Handlebars包识别。访问localhost:3000/dashboard时仅返回空白页面(路由有效),以下是相关代码及文件结构说明:
主文件代码
const express = require('express') const engine = require('express') const exphbs = require('express-handlebars') //Load config dotenv.config({ path: './config/config.env'}) const app = express() if (process.env.NODE_ENV === 'development') { app.use(morgan('dev')) } //Handlebars app.engine('.hbs', engine({ defaultLayout: 'main', extname: '.hbs'})) app.set('view engine', '.hbs') app.set('views', './views'); // Routes app.use('/', require('./routes/index')) const PORT = process.env.PORT || 3000 app.listen( PORT, console.log(`Server running in ${process.env.NODE_ENV} made on port ${PORT}`) )
路由文件index.js代码
const express = require('express') const router = express.Router() // @Desc Login/Landing page // @route GET / router.get('/login', (req, res) => { res.render('login', {layout: 'main'}) }) //@Desc Dashboard // @route GET /dashboard router.get('/dashboard', (req, res) => { res.render('dashboard', {layout: 'main'}) }) module.exports = router
主布局文件main.hbs代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name = "viewport" content="width=device-width, initial-scale=1.0" <title>FW Pre-Call-Script Generator</title> </head> <body> {{{body}}} </body> </html>
仪表盘文件dashboard.hbs代码
--- layout: 'main' --- <h1>Dashboard</h1>
文件结构符合Express+Handlebars常规布局。
问题根源与修复步骤
1. 引擎初始化错误
主文件里错误地将express赋值给engine变量,正确做法是使用exphbs提供的引擎方法:
// 原错误代码 const engine = require('express') // 修改为 const engine = exphbs.engine
或者直接在初始化时调用:
app.engine('.hbs', exphbs.engine({ defaultLayout: 'main', extname: '.hbs'}))
2. 视图文件的无效语法
dashboard.hbs开头的--- layout: 'main' ---是静态站点生成器的语法,Express-Handlebars不支持,直接删除这部分即可——你已经在路由的res.render里指定了布局。
修改后的dashboard.hbs:
<h1>Dashboard</h1>
3. 依赖检查
确保已安装所有必需依赖:
npm install express express-handlebars dotenv morgan
完成以上修改后重启服务,访问localhost:3000/dashboard就能正常显示标题内容了。
内容的提问来源于stack exchange,提问作者Satvik Agnihotri
相关产品推荐
相关产品推荐

