EJS将ejs文件加载到layout.ejs

问题描述 投票:0回答:1

我有一个默认的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仅显示其内容,而不显示部分内容enter image description here

我有一个默认的layout.ejs文件,在其中编译标头,页脚等。layout.js。现在,我想输出存储在3个不同文件中的页面内容(1.主页,2。艺术家,3。联系人公式)。当...

node.js express ejs
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.