快捷车手把的多种布局

问题描述 投票:0回答:1

我目前正在尝试使用手柄栏,在这里我可以轻松地引用多个主题布局。我的意图是,例如,当渲染一个新的页面时,我可以选择哪种布局,每个布局链接到不同的JSCSS文件。每个布局链接到一组不同的JSCSS文件。例如,我可以做 我可以这样做:

router.get('/bootstrap', function (req, res){ 
   res.render('general', {layout: bootstrap, data: variables});   
});
                     ---or --
router.get('/semantic', function(req,res){
   res.render('general', {layout: semantic, data: variables});

我以为只要在我的网站上创建这样的(bootstrapsemantic.hbs)模板,就可以轻松实现这一点。视图布局 目录,并输入

res.render('general', {layout: 'bootstrap', data: variables});

然而,这似乎并不工作

// bootstrap_layout.hbs

<html>
<head>
<link ref....to bootstrap css>
<body>
   {{{body}}}

<script src...to jquery>
<script src...to bootstrap js>
{{> Footer }}
</body>
<html>

我的app.js文件看起来是这样的。

var express = require('express');
var exphbs  = require('express-handlebars');

var app = express();
var hbs = exphbs.create({
   layoutsDir: /views/layouts });

// Register `hbs.engine` with the Express app.
app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');

问题是,当我尝试这样做时,当我在{layout: bootstrap}或{layout: semantic}中调用layouttemplate时,似乎无法加载layouttemplate。我遇到了布局无法找到的错误,与其他ENOENT错误。我也试过改变这个。

Remove: var hbs = exphbs.create({
   layoutsDir: /views/layouts });
--------------------------------
Remove: hbs. engine, and replace with exphbs: 

app.engine('handlebars', exphbs({layoutDir: __dirname+'/views/layouts'}));
app.set('view engine', 'handlebars');

我没有找到为什么我在调用一个新布局时遇到这么多困难。有谁能给我任何建议,告诉我哪里出了问题,或者我是否遗漏了什么重要的东西?

谢谢!我目前正在尝试使用车把式布局。

javascript node.js handlebars.js express-handlebars
1个回答
0
投票

当你调用render方法时,在你选择的布局名称中使用单引号。

res.render('general', {layout: 'bootstrap', data: variables});
© www.soinside.com 2019 - 2024. All rights reserved.