我想稍微更改一下我的文件和文件夹结构,我尝试在网上寻找解决方案,但没有找到任何简单的解决方案,我感觉这件事应该有一个简单的解决方案。
我目前有这个
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
基本上,我希望当我在根目录中打开 View 文件夹时先有前端文件夹,然后有后端文件夹。根目录中的后端文件夹应具有主布局,然后在文件夹中具有特定 View 的不同部分。
我可以添加后端文件夹而不会出现更改问题
app.set('views', __dirname + '/views');
到
app.set('views', __dirname + '/backend');
但是如何交换 View 文件夹根目录中的布局?
这样做会引发错误,因为他会在 /backend/layouts/main.hbs
中查找布局,而我希望它位于根目录中。
此外,稍后我会通过 res.render('index', data);
来渲染内容。建议的解决方案应该能够执行相同的操作,或者至少 res.render('views/index', data);
因为新 View 将位于文件夹中。
感谢任何帮助或提示。
最佳答案
没关系,在同事的帮助下找到了它。
有一个实际的选项,但我在查看文档时错过了。
app.engine('hbs', expressHandlebars({
extname: 'hbs',
defaultLayout: 'main',
layoutsDir: './views/backend'
}));
关于node.js - Node 和 Handlebars 文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33566100/