使用带有 nodejs 的把手进行模板化以包含布局
templating using handlebars with nodejs to include layout
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/
知道为什么吗?
有一个 npm 包 (connect-slashes) 安装了一些中间件,它会在没有斜杠的 url 上添加斜杠。此过程称为 URL 规范化。
这样更好,因为您不会显示 'catalog' 和 'catalog/' 网址的相似内容,这对 SEO 不利(重复内容惩罚)。
包装详情在这里:
https://www.npmjs.com/package/connect-slashes
从命令行:
npm install connect-slashes --save
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/
知道为什么吗?
有一个 npm 包 (connect-slashes) 安装了一些中间件,它会在没有斜杠的 url 上添加斜杠。此过程称为 URL 规范化。
这样更好,因为您不会显示 'catalog' 和 'catalog/' 网址的相似内容,这对 SEO 不利(重复内容惩罚)。
包装详情在这里:
https://www.npmjs.com/package/connect-slashes
从命令行:
npm install connect-slashes --save