【问题标题】:Issue with partials using EJS in express在 express 中使用 EJS 的部分问题
【发布时间】:2018-07-01 16:21:13
【问题描述】:

前言:我最近一直在将我的 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>

我知道我可能走错了路,但我们将不胜感激。

问候

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

【问题讨论】:

标签: node.js express pug ejs templating


【解决方案1】:

将所有视图文件作为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>

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2013-11-09
    相关资源
    最近更新 更多