0
我運行ExpressJS並安裝了Handlebars作爲模板引擎。我正在使用AdminLTE,並將其拆分爲/views/layouts
中的6個hbs
文件。我把AdminLTE模板放在public
文件夾中。如何解決無法找到部分頭部把手
views/layouts
-- base.hbs // as defaultLayout
-- footer.hbs
-- head.hbs
-- js.hbs
-- nav.hbs
-- sidebar.hbs
我取得節點上的控制檯每次以下錯誤,當我嘗試訪問本地主機:3000
Error: The partial head could not be found
這裏是我的app.js
設置:
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var flash = require('express-flash');
var session = require('express-session');
var mongoose = require('mongoose');
var validator = require('express-validator');
var override = require('method-override');
var hbs = require('express-handlebars');
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();
// view engine setup
app.engine('hbs', hbs({extname: 'hbs', defaultLayout: 'base', layoutDir: __dirname + '/views/layouts'}));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(session({secret: "1234"}));
app.use(flash());
app.use(validator());
app.use(override(function(req, res) {
if (req.body && typeof req.body == 'object' && '_method' in req.body) {
var method = req.body._method;
delete req.body._method;
return method;
}
}));
[...]
這是我base.hbs
文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
{{> head}}
</head>
<body class="hold-transition skin-blue sidebar-mini">
<div class="wrapper">
{{> nav}}
{{> sidebar}}
<div class="content-wrapper">
{{{ body }}}
</div>
{{> footer}}
<div class="control-sidebar-bg"></div>
{{> js}}
</div>
</body>
</html>
我已經註冊諧音路徑,但我得到這個錯誤'類型錯誤:無法讀取的undefined' – metaphor
財產「哈希」我需要一個較長的錯誤堆棧有任何幫助。 –
'TypeError:無法讀取對象未定義的 的屬性'哈希'。(/home/bill/Websites/public_html/nodejs-apps/codepolitan/node_modules/handlebars/dist/cjs/handlebars/helpers/if.js:16:17) at Object.eval [as main](eval at createFunctionContext (/home/bill/Websites/public_html/nodejs-apps/codepolitan/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js:254:23),:6:32)' –
metaphor