app.js
var exphbs = require('express-handlebars');
app.engine('handlebars', exphbs({defaultLayout: 'layout'}));
app.set('view engine', 'handlebars');
app.use('/catalog', require('./routes/catalog'));
所以在我的路由文件夹中,我有一个名为catalog的文件夹,然后在其中我有catalog.js。
在catalog.js中我这样做
var express = require('express');
var router = module.exports = express.Router();
router.get('/', function(req, res) {
res.render('catalog/index');
});
当我访问 http://localhost:3000/catalog
时效果很好但当我尝试运行 http://localhost:3000/catalog/
时,它被排除在布局之外知道为什么吗?
最佳答案
有一个 npm 包(connect-slashes)会安装一些中间件,这些中间件会在没有斜杠的 URL 上添加斜杠。此过程称为 URL 规范化。
这更好,因为您不会为“catalog”和“catalog/”网址显示类似的内容,这对 SEO 不利(重复内容惩罚)。
此处的软件包详细信息:
https://www.npmjs.com/package/connect-slashes
从命令行:
npm install connect-slashes --save
关于javascript - 使用带有 NodeJS 的 Handlebars 进行模板化以包含布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34453048/