1

好的,这有点奇怪,但情况就是这样。

我正在玩 Express 和 Jade 诱人系统。

我有一个相当简单的layout.jade文件:

doctype 5
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
    h1 Nav goes here!
  body
    block content

和一个home.jade文件:

扩展布局

block content
  h1= title
  p Welcome to #{title}

上述组合工作正常。

但是,我想添加一个页脚,所以我创建了一个foot.jade文件:

extends layout

block foot
  h1= me

并添加include foot到我的layout.jade文件中。

现在,如果我尝试访问我的应用程序的主页,我会收到一个Maximum call stack size exceeded错误:/

我的 app.js 文件是:

/**
 * Module dependencies.
 */

var express = require('express')
  , home = require('./routes/home')
  , http = require('http')
  , path = require('path');

var app = express();

app.configure(function(){
  app.set('port', process.env.PORT || 3000);
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser('your secret here'));
  app.use(express.session());
  app.use(app.router);
  app.use(require('stylus').middleware(__dirname + '/public'));
  app.use(express.static(path.join(__dirname, 'public')));
});

app.configure('development', function(){
  app.use(express.errorHandler());
});

app.get('/', function(req, res) {
  res.render('home', {title: 'Ninja Store'});
});

http.createServer(app).listen(app.get('port'), function(){
  console.log("Express server listening on port " + app.get('port'));
});
4

1 回答 1

3

foot.jade使用extends layout, 加载layout.jade, 包含foot.jade, 使用extends layout, 加载layout.jade, ...

换句话说:extends layoutfoot.jade;)中删除

于 2013-03-17T06:36:22.990 回答