根据我知道的文档,我可以将我的Express 4.12.x设置为使用多个视图目录,如下所示:
app.set('views', [
__dirname + '/views1',
__dirname + '/views2'
]);但我希望有不同的网址从不同的视图目录中获得视图。所以我想要这样的东西:
app.get('/views1/:view', function (req, res) {
res.render(req.params.view); //get the views only from /views1
});
app.get('/views2/:view', function (req, res) {
res.render(req.params.view); //get the views only from /views2
});目前发生的情况是,无论url是什么,Express总是先在/views1中检查:view,然后在/views2中检查。我知道这是Express的正常行为,但我很想知道是否有可能让我的想法发挥作用。
发布于 2017-03-08 04:38:53
在重读Express文档后,我只是通过使用Express子应用作为中间件来让它工作:
var express = require('express');
var app = express();
var views1app = express();
var views2app = express();
views1app.set('views', __dirname + '/views1');
views1app.set('view engine', 'pug');
views1app.get('/views1/:view', function (req, res) {
res.render(req.params.view);
});
views2app.set('views', __dirname + '/views2');
views2app.set('view engine', 'pug');
views2app.get('/views2/:view', function (req, res) {
res.render(req.params.view);
});
app.use(views1app, views2app);https://stackoverflow.com/questions/42657543
复制相似问题