2012-12-17 13 views
5

तो मैं consolidate.js उपयोग करने के लिए एक्सप्रेस के साथ swig templates रेंडर करने के लिए कोशिश कर रहा हूँ, लेकिन मैं एक-दूसरे टेम्पलेट निम्नलिखित त्रुटि मिलती है जब मैं "विस्तार" करने की कोशिश: मेंएक्सप्रेस में बड़ा घूँट टेम्पलेट्स प्रस्तुत करना नहीं कर सकते

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

मेरी (केवल प्रासंगिक कोड सहित) मेरी प्रतिपादन इंजन के रूप में app.js फ़ाइल मैं सेटअप बड़ा घूँट:

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'); 
}); 

और मैं किसी मूल टेम्पलेट है, one.html:

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

फिर एक विरासत में टेम्पलेट, two.html:

{% extends 'one.html' %} 

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

तो क्यों (ऊपर त्रुटि में की तरह?) किसी भी मदद के लिए धन्यवाद //one.html की एक पथ के साथ one.html के लिए बड़ा घूँट नज़र करता है।

उत्तर

11

बड़ा घूँट प्रलेखन देखने के बाद यह पता चल मैं इनिशियलाइज़ बड़ा घूँट था, और यह बता जहां "विस्तारित" टेम्पलेट्स के लिए देखने के लिए किया था (विशेष रूप से 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

आप की जरूरत है न समेकित का उपयोग करें, बस [swig.renderFile'as इंजन का उपयोग करें] (http://paularmstrong.github.io/swig/docs/#express) => 'app.engine ('html', swig.renderFile);' – laconbass

+1

ध्यान दें कि swig.init' को स्विग के नवीनतम संस्करण में बहिष्कृत किया गया है अतिरिक्त विकल्पों के लिए [swig दस्तावेज़] (http://paularmstrong.github.io/swig/docs/api/#SwigOpts) देखें – user1534980

संबंधित मुद्दे