Node.js + Express + <%= EJS %> 上的多个视图路径
Multiple View paths on Node.js + Express + <%= EJS %>
我正在为我的网络应用程序使用 express 4.17.1 组合。
我想知道如何根据路由和多个文件夹渲染多个文件
假设我有:
当我想进入管理路径时出现这个问题:
如果您使用的是 express 版本 3 或更高版本,则传递目录数组将不起作用。尝试以下
app.set('view engine', 'ejs');
var renderer = express.response.render;
express.render = () => {
app.set('views', './regular/viewPath/views');
try {
return renderer.apply(this, arguments);
}
catch (e) {...}
app.set('views', './admin/viewPath/views');
return renderer.apply(this, arguments);
};
const adminRoute = require('./routes/adminFile');
app.use('/admin', adminRoute);
最后,在您的管理文件中设置名称
router.set('name', 'adminFile');
其他简单的替代方法是将您的视图放在不同的文件夹中
示例:
views/index.ejs
views/admin/adminFile.ejs
app.set('views', path.join(__dirname, 'views'));
然后在渲染上,你喜欢
res.render('views/admin/adminFile', configs);
我正在为我的网络应用程序使用 express 4.17.1 组合。
我想知道如何根据路由和多个文件夹渲染多个文件
假设我有:
当我想进入管理路径时出现这个问题:
如果您使用的是 express 版本 3 或更高版本,则传递目录数组将不起作用。尝试以下
app.set('view engine', 'ejs');
var renderer = express.response.render;
express.render = () => {
app.set('views', './regular/viewPath/views');
try {
return renderer.apply(this, arguments);
}
catch (e) {...}
app.set('views', './admin/viewPath/views');
return renderer.apply(this, arguments);
};
const adminRoute = require('./routes/adminFile');
app.use('/admin', adminRoute);
最后,在您的管理文件中设置名称
router.set('name', 'adminFile');
其他简单的替代方法是将您的视图放在不同的文件夹中
示例:
views/index.ejs
views/admin/adminFile.ejs
app.set('views', path.join(__dirname, 'views'));
然后在渲染上,你喜欢
res.render('views/admin/adminFile', configs);