2014-11-06 172 views
3

我的文件夾結構如下:Nunjucks沒有呈現模板

/app 
    |-routes.js 
/public 
    |-index.html 
server.js 

Server.js看起來是這樣的:

var nunjucks = require('nunjucks'); 
var express  = require('express'); 
var app   = express(); 
nunjucks.configure('public', { autoescape: true, express: app }); 
var port = process.env.PORT || 8080; 
app.use(express.static(__dirname + '/public')); 
require('./app/routes')(app); // configure our routes 
app.listen(port);    
exports = module.exports = app; 

應用程序/ routes.js看起來是這樣的:

module.exports = function(app) { 
     app.get('*', function(req, res) { 
      res.render('index.html', { awesome: 'page-title' }); 
     }); 
    }; 

public/index.html看起來像這樣:

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <base href="/"> 

    <title>{{awesome}}</title> 

</head> 
<body> 
     <h1>{{ awesome }}</h1>  
    </div> 
</body> 
</html> 

當我啓動我的節點應用程序並瀏覽到localhost:8080時,頁面標題是字符串{{awesome}}並且包含字符串{{awesome}}而不是所需的「頁面標題」。 nunjucks如何不將變量渲染到模板中?

回答

3

你必須拆分'公共'文件夾。什麼是公開的,不能由nunjucks處理。它是靜態的(你是這麼宣稱的)。把你的nunjucks模板放在文件夾裏,例如'views'

/app 
    |-routes.js 
/public 
    |css/ 
    |img/ 
/views 
    |- index.html 
server.js 

nunjucks.configure('views', ...)