Node.js / Express的多个视图文件夹

时间:2016-10-23 22:39:14

标签: javascript node.js express

我已经阅读了几个答案,但目前还不清楚如何让Express使用多个视图文件夹。

让我们说Express应用程序包含独立的部分,在子文件夹中组织:

app
  +partA
     +views
        index.html
  +partB
     +views
        index.html

然后我们将每个文件夹设置为视图:

app.set('views', [__dirname + '/partA/views', __dirname + '/partB/views']);

但是如何在第二个文件夹中访问index.html

在routes.js中:

res.sendFile('index.html');

将始终发送A部分。

我们也不能使用相对路径:

res.sendFile('/partB/views/index.html');

将触发错误:

Error : Failed to lookup view "/partB/views/index.html" in views directories "/partA/views" or "/partB/views"

那么如何使这项工作?我知道通常的做法是将部件作为视图文件夹的子文件夹,但这不是一个选项。我不希望在/views/public/lib等每个部分都有重复的文件夹。

1 个答案:

答案 0 :(得分:0)

致电res.sendFile('index.html') - partA或partB时,您想要什么? Express如何做出选择?

尝试
 1. res.sendFile('../../partB/views/index.html');
 2.在B部分请求中的中间件app.set('views', '/partB')上  3. app.set('views', '/')并在每次res.sendFile('/partB/views/index.html');

时指定完整路径