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 layoutから削除foot.jade;)

于 2013-03-17T06:36:22.990 に答える