在快递中使用EJS的部分问题

时间:2018-01-22 23:08:42

标签: node.js express pug ejs templating

前言:我最近一直在将我的Web开发技能从PHP + HTML / CSS转换为Nodejs,但是在模板方面遇到了麻烦。

我使用Express,经过一些研究尝试使用Pug.js,但发现我现在想要实现的目标太复杂了,所以我转移到了ejs,因为它似乎更简单。

我想要获得的是能够重复使用我已经为网站上的多个页面编写的HTML - 我发现这些内容被称为“部分”和“部分”。 ?

现在到目前为止我写的代码:

server.js:

var express = require('express');
app = express();
publicFolder = __dirname + '/public';

app.set('view engine', 'ejs');

app.use(express.static(publicFolder, {
    extensions: ['html']
}));

app.listen(80, () => {
    console.log('Server is online on port 80')
});

index.html:(/public/index.html)

<html>
    <body>
        <% include ../views/header.ejs %>
    </body>
</html>

header.ejs:(/views / header.ejs)

<h1>Test header</h1>

我知道我可能处于完全错误的轨道上,但任何帮助都会非常感激。

此致

编辑:我已经仔细检查以确保它不是路径问题

1 个答案:

答案 0 :(得分:0)

您可能更容易将所有视图文件存储为ejs在同一文件夹中,并使用path module来设置静态文件。

server.js:

var express = require('express');
var path = require('path')
app = express();

app.use(express.static(path.join(__dirname, 'public')));

app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'ejs')

app.listen(80, () => {
    console.log('Server is online on port 80')
});

index.ejs

<html>
    <body>
        <% include header %>
    </body>
</html>

只是一个考虑因素。希望它有所帮助!