我得到了一个默认的layout.ejs文件,我在其中编译了页眉、页脚等layout.js。现在我想输出存储在3个不同文件中的页面内容(1.主页,2.艺术家,3.联系公式)。当页面/homepage被调用时,文件homepage.ejs应该被读入并显示(对于其他文件,请参见上面)。我如何检查所请求的URL,或者有其他方法可以做到这一点
layout.ejs
<%- include('../partials/default/head') %>
<body>
<!-- Navigation Top -->
<%- include('../partials/default/navigation') %>
<!-- Page Content -->
<!-- Footer -->
<%- include('../partials/default/footer') %>
<script src="/vendor/jquery/jquery.min.js"></script>
<script src="/vendor/bootstrap/js/bootstrap.min.js"></script>
</body>
</html>路由器
const
express = require('express'),
defaultController = require('../controllers/defaultController');
const router = express.Router(); // create different routes
// Middleware to all routes in default
router.all('/*', (req, res, next) => {
req.app.locals.layout = 'default';
next();
})
// index routes
router.route('/')
.get(defaultController.index)
router.route('/artists')
.get(defaultController.artists)
router.route('/contact')
.get(defaultController.contact)
module.exports = router;控制器
module.exports = {
index: (req, res) => {
res.render('default/index');
},
artists: (req,res) => {
res.render('default/artists');
},
contact: (req,res) => {
res.render('default/contact');
},在我的app.js中,我做到了:
app.use('/',require('./routes/defaultRoutes'));
app.get('/', (req, res) => {
res.render('layouts/default');
})
app.use('/',require('./routes/adminRoutes'));
app.get('/admin', (req, res) => {
res.render('layouts/admin');
})来实现这些路由。但是现在索引(主页)只显示导航和页脚,而/artists和/contact只显示其内容,而不显示部分

发布于 2020-03-06 02:00:06
在您的layout.ejs文件中,将<%- body %>添加到您希望显示其他页面内容的位置,我假设您希望它就在<!-- Page Content -->下
https://stackoverflow.com/questions/60477708
复制相似问题