По-прежнему возникает ошибка, когда `include` относительный путь после` app.set` - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть проект nodejs, созданный генератором express. Это часть древовидного представления моего проекта:

MyProject/
 |-- routes/
 |    |-- content.js
 |-- views/
 |    |-- contents/
 |    |    |-- bh/
 |    |         |-- bh_1.ejs
 |    |         |-- bh_2.ejs
 |    |-- content.ejs
 |-- app.js

В app.js я определил базовый путь для include:

app.set('views', path.join(__dirname, 'views'));

В routes/content.js, Я сделал верхний файл E JS views/content.ejs:

var params = {
    path_bh_1: './contents/bh/bh_1.ejs',
    path_bh_2: './contents/bh/bh_2.ejs'
}

/* GET home page. */
router.get('/', function(req, res, next) {
    res.render('content', params);
});

В views/content.ejs, я включил второй файл E JS:

<%- include(path_bh_1); %>

In views/bh/bh_1.ejs, я включил третий:

<%- include(path_bh_2); %>

В views/bh/bh_2.ejs есть нормальные HTML заявления:

<p>xxx</p>

Но когда я захожу на свой веб-сайт, браузер показывает сообщение об ошибке: Could not find the include file "contents/bh/bh_2.ejs". И я изменил routes/content.js:

var params = {
    path_bh_1: './contents/bh/bh_1.ejs',
    path_bh_2: '../../contents/bh/bh_2.ejs' // the path is modified
}

Работает. Я думаю, что это странно. app.set может управлять только операцией верхнего слоя include? Будем благодарны за любые ответы.

...