Peepcode의 Node.js Full Stack 비디오 작업을하고 있는데, 이전 버전의 express/jade를 사용하고있는 것으로 보입니다. block/extends를 사용하여 레이아웃을 렌더링하는 것에 대한 언급이 없습니다.Jade - 다른 디렉토리에서 템플릿로드하기
앱에 사용 된 설정은 모든 하위 앱에로드되는 /views/layout.jade 파일을 갖는 것입니다. 하위 애플 리케이션의보기는/apps // views에 있습니다.
내 server.js는 꽤 표준적인 것처럼 보입니다. 익스프레스 버전 3.0.0rc1입니다 하위 응용 프로그램에 대한 나의 루트 파일에서/응용 프로그램/인증/경로입니다
require('coffee-script');
var express = require('express')
, 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(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
require('./apps/authentication/routes')(app)
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
routes.coffee
routes = (app) ->
app.get "/login", (req,res) ->
res.render "#{__dirname}/views/login",
title: "Login"
stylesheet: 'login'
module.exports = routes
I가 렌더링하려는보기 이.
extends layout
block content
form(action='/sessions', method='post')
label
| Username
input(type='text', name='user')
label
| Password
input(type='password', name='password)
input(type='submit', name='Submit')
그리고 마지막으로 레이아웃 login.jade
.doctype 5
html
head
title= title
link(rel='stylesheet', href='/stylesheets/#{stylesheet}.css')
body
block content
로컬 호스트로가는 :
익스프레스 500 오류 : 3000/로그인이 렌더링 /Users/StevenNunez/code/HotPie/apps/authentication/views/login.jade:1> 1 | 레이아웃 2 | 3 | 콘텐츠 차단 4 | ENOENT, 해당 파일 또는 디렉토리가 없습니다. '/Users/StevenNunez/code/HotPie/apps/authentication/views/layout.jade'
내 폴더 구조 : 양식 (작업 = '/ 세션', 방법 = '게시'
.
├── '
├── apps
│ └── authentication
│ ├── routes.coffee
│ └── views
│ └── login.jade
├── package.json
├── public
├── server.js
└── views
├── index.jade
└── layout.jade
감사합니다.
ok ... 잘 작동합니다 ... 그러나 확장 메서드로 작업 할 올바른 방법이기 때문에 앱을 설정하십시오. – andrescabana86
동일한 튜토리얼을 통해 작업하고 있습니다. 같은 문제. 웬일인지 'extend ../../../views/layout'을 사용하는 것이 편안하지 않습니다. 이것에 대한 대안이 있습니까? – Feech
굉장합니다. 정확히 필요한 것! – Hcabnettek