使用带有nodejs的把手进行模板化以包含布局

时间:2015-12-24 12:46:48

标签: javascript node.js express handlebars.js

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.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/时它被排除在布局之外了解为什么?

1 个答案:

答案 0 :(得分:1)

有一个npm包(connect-slashes),它安装了一些中间件,它们会在没有一个的URL上添加斜杠。此过程称为URL规范化。

这样做会更好,因为您不会为目录'和'目录/'对SEO有害的网址(重复内容处罚)。

此处的套餐详情:

https://www.npmjs.com/package/connect-slashes

从命令行:

npm install connect-slashes --save