что моя идея: я хочу загрузить обработанный файл ejs в качестве тела моего основного файла ejs шаблона. Является ли это возможным?
Мой app.js:
router.get('/', function(req, res) {
res.render('layout', {title: "Example title", body: _____________});
});
Я попробовал следующее, но это не сработало:
body: res.render('page1_body_content')
Это будет мой основной шаблон файл (layout.ejs)
<!doctype html>
<html>
<head>
<title>
<% (title) ? title : '' %>
</title>
<link rel="stylesheet" href="https://v4-alpha.getbootstrap.com/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="css/font-awesome-4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<%= body %>
</body>
</html>
Мой второй файл (page1_body_content.ejs) выглядит так:
<b>hallo</b>
Результат должен выглядеть так:
<!doctype html>
<html>
<head>
<title>
Expample title
</title>
<link rel="stylesheet" href="https://v4-alpha.getbootstrap.com/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="css/font-awesome-4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<b>Hallo</b>
</body>
</html>
Попробуйте этот код: -
var ejs = require('ejs');
var compiled = ejs.compile(fs.readFileSync(__dirname + '/page1_body_content.ejs', 'utf8'));
var html = compiled();
res.render('layout', {title: "Example title", body: html });
Обновите код тега тела, чтобы: -
<body>
<%- body %>
</body>