我在某些本来应该很简单的事情上遇到了麻烦。
我的网络应用是一个Node.js
和express
和ejs
的应用。
我在index.js中包含这样的代码(在这种情况下非常经典):
var app = express();
app.use('/public', express.static(path.join(__dirname, '/public')));
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
现在这是我遇到的问题。
在我所有的.ejs文件中,有些恰好需要相同的代码(由我编写)。为了避免重复,我想将此代码存储在一个单独的文件中,然后在必要时将其包括在内,但是我找不到正确的方法。我将代码放在名为Utils.ejs的文件中(位于partials文件夹中),然后使用了它:
<% include ../partials/Utils.ejs %>
但不起作用。然后,我在网上搜索并尝试了几种变体,但没有任何效果。
有人知道我该怎么做吗?
有关版本的信息,这是我的package.json文件中的内容:
"ejs": "^2.5.7",
"express": "~4.11.x",
"node": ">=4.3"
答案 0 :(得分:0)
在您导入局部文件时不包括文件扩展名
从.ejs
中删除<% include ../partials/Utils.ejs %>
,然后尝试
答案 1 :(得分:0)
删除“ ..”和“ .ejs”,并确保“ / partials / Utils /”位于公用文件夹中
<% include /partials/Utils %>
答案 2 :(得分:0)
在此行
app.set('views', __dirname + '/views');
做到
app.set('views', __dirname + '/views/pages/');
这样可以正常工作,您可以直接访问所有视图页面(views/pages/
),也可以从页面文件夹访问部分视图(views/partials/
)。