2014-11-06 4 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', ...) 
Смежные вопросы