2012-12-17 2 views
5

Vì vậy, tôi đang cố gắng để sử dụng consolidate.js để render swig templates với nhanh, nhưng tôi nhận được lỗi sau khi tôi cố gắng "mở rộng" một mẫu từ khác:Không thể hiển thị các mẫu uống một lân tốc Dịch vụ

Error: ENOENT, no such file or directory '//one.html 

Trong tôi app.js tập tin tôi thiết lập róc rách làm công cụ vẽ của tôi (chỉ bao gồm cả mã có liên quan):

var consolidate = require('consolidate'); 

app.set('view engine', 'html'); 
app.set('views', __dirname + '/views'); 
app.engine('.html', consolidate.swig); 

app.get('/test', function(req, res) { 
    res.render('two'); 
}); 

Và tôi có một mẫu cơ sở, one.html:

<h3>My Site</h3> 
{% block content %} 
    Welcome 
{% endblock %} 

Sau đó, một mẫu kế thừa, two.html:

{% extends 'one.html' %} 

{% block content %} 
    This is an inner page. 
{% endblock %} 

Vậy tại sao không nhìn uống một lân cho one.html với một con đường //one.html (như trong các lỗi trên?) Cảm ơn sự giúp đỡ nào.

Trả lời

11

đặn nó ra sau khi xem xét các tài liệu hướng dẫn uống một lân Tất cả tôi phải làm là uống một lân khởi tạo, và nói với nó nơi để tìm kiếm mẫu "mở rộng" (đặc biệt là section on usage with Express.):

var consolidate = require('consolidate'), 
    swig = require('swig'); 

app.set('view engine', 'html'); 
app.set('views', __dirname + '/views'); 
app.engine('.html', consolidate.swig); 

app.get('/test', function(req, res) { 
    res.render('two'); 
}); 

/* Tell swig where to look for templates when one extends another. */ 
swig.init({ root: __dirname + '/views' }); 
+5

bạn không cần phải sử dụng hợp nhất, chỉ cần [sử dụng 'swig.renderFile'as engine] (http://paularmstrong.github.io/swig/docs/#express) =>' app.engine ('html', swig.renderFile); ' – laconbass

+1

Lưu ý rằng 'swig.init' không được chấp nhận trong phiên bản mới nhất của swig Để biết thêm các tùy chọn, hãy xem [tài liệu swig] (http://paularmstrong.github.io/swig/docs/api/#SwigOpts) – user1534980