我想稍微更改我的文件和文件夹结构,我尝试在线寻找解决方案,但没有找到任何简单的解决方案,我觉得这个问题应该有一个简单的解决方案。
我目前有这个
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);
,因为新视图将位于文件夹中。
任何帮助或提示表示赞赏。
答案 0 :(得分:2)
没关系,在同事的帮助下找到它。
有一个实际的选择,我在查看文档时错过了。
app.engine('hbs', expressHandlebars({
extname: 'hbs',
defaultLayout: 'main',
layoutsDir: './views/backend'
}));