【问题标题】:templating using handlebars with nodejs to include layout使用带有 nodejs 的车把进行模板化以包含布局
【发布时间】:2015-12-24 12:46:47
【问题描述】:

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/ 时它从布局中排除,知道为什么吗?

【问题讨论】:

    标签: javascript node.js express handlebars.js


    【解决方案1】:

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

    这样更好,因为您不会为“目录”和“目录/”网址显示类似的内容,这对 SEO 不利(重复内容处罚)。

    这里的包裹详情:

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

    从命令行:

    npm install connect-slashes --save
    

    【讨论】:

    • 我知道 --save 但什么是 --save-deps?
    • 对不起,我在考虑 --save-dev 但 --save 可能是最好的。更新的答案。
    猜你喜欢
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多