首页 > 解决方案 > 带有 Express 和 Handlebars 的多个视图文件夹

问题描述

我需要使用 Express 和 express-handlebars 注册多个视图文件夹。有可能吗?

我有这个结构:

/project/
    /admin/
        /views/
        /server/
    /webapp/
        /views/
        /server/
    /common/
    /node_modules/

而且我需要当我在路由中呈现视图时,我能够访问这些文件夹视图之一/admin/views/ 或/webapp/views/。

标签: node.jsexpressexpress-handlebars

解决方案


从 express 版本 4 开始,您可以通过传递如下目录数组来执行app.set(name, value)此操作:

app.set('views', [
  path.join(__dirname, 'app/index'),
  path.join(__dirname, 'app/error'),
]);

命名冲突:

这样做时要小心,以免发生命名冲突。例如,如果您有两个文件,error.ejs一个是 inside app/index,另一个是 inside app/error,express 将在app/index文档状态下提供一个 inside :

视图按照它们在数组中出现的顺序进行查找。


推荐阅读