节点和把手文件夹结构

时间:2015-11-06 11:45:43

标签: node.js handlebars.js

我想稍微更改我的文件和文件夹结构,我尝试在线寻找解决方案,但没有找到任何简单的解决方案,我觉得这个问题应该有一个简单的解决方案。

我目前有这个

var expressHandlebars = require('express-handlebars');
app.set('views', __dirname + '/views');
app.engine('hbs', expressHandlebars({extname: 'hbs', defaultLayout: 'main'}));

我的文件夹结构如下

views

-- frontend
---- (doesn't matter, gulp takes care of this for FE).hbs

-- layouts
---- main.hbs

-- index.hbs

我想归档的是

views

-- frontend
---- (doesn't matter, gulp takes care of this for FE).hbs

-- backend
---- views
------ index.hbs
---- main.hbs

基本上,当我在root中打开我的views文件夹时,我想要有前端和后端文件夹。 root中的后端文件夹应具有主布局,然后在文件夹中具有特定视图的不同部分。

我可以添加后端文件夹而不会出现更改

的问题
app.set('views', __dirname + '/views');

app.set('views', __dirname + '/backend');

但是如何交换该布局位于views文件夹的根目录中?

这样做会引发错误,因为他会在/backend/layouts/main.hbs中寻找布局,我希望它在根目录中。

此外,稍后我会通过说res.render('index', data);来渲染事物。建议的解决方案应该能够执行相同的操作,或至少res.render('views/index', data);,因为新视图将位于文件夹中。

任何帮助或提示表示赞赏。

1 个答案:

答案 0 :(得分:2)

没关系,在同事的帮助下找到它。

有一个实际的选择,我在查看文档时错过了。

app.engine('hbs', expressHandlebars({
                      extname: 'hbs', 
                      defaultLayout: 'main', 
                      layoutsDir: './views/backend'
                  }));