[英]Node Ejs module, include not working
我在将 html 片段添加到我的 index.html 时遇到了一些问题。 我试图遵循 ejs 文档,但我似乎无法使其正常工作。
目录结构:
project
-public
--assets
---css
---images
---js
--Index
---index.html + index.css and index.js
--someOtherPageFolder
-views
--partials
---partials1.ejs
--index.ejs
--layout.ejs
-server.js
这是我的 server.js(新):
var express = require("express");
var partials = require("express-partials");
var http = require('http');
var path = require('path');
var app = express();
app.get("/", function(req, res) {
res.redirect("index");
});
app.configure(function(){
app.set('port', process.env.PORT || 8888);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(partials());
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.bodyParser());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
http.createServer(app).listen(app.get('port'), function(){
console.log('App listening on port ' + app.get('port'));
});
这是我的 test.ejs:
<h1>This is test!</h1>
这就是我想要 html 片段到 go 的地方:
<div id="sb-site">
<div class="">
<p>Not test</p>
<%- include test.html %>
</div>
</div>
我究竟做错了什么? 我还有办法做到这一点并使用 .html 而不是 .ejs(我使用 eclipse 并且它不支持 .ejs 文件)
使用 include 你应该这样做:
<%- include ("./partials/footer") %>
Express 3 打破了 ejs partials,改用express-partials
。
// Include it like so with your other modules
var express = require("express");
var partials = require('express-partials');
var server = express();
// Finally add it into your server conviguration
server.configure(function(){
server.set('view engine', 'ejs');
// Include partials middleware into the server
server.use(partials());
});
在您的.ejs
视图中,享受这样的奢华......
<%- include ../partials/header %>
<section id="welcome">
Welcome
</section>
<%- include ../partials/footer %>
此外,与其将 ejs 模块设置为读取.html
,不如按照此答案让 eclipse 将.ejs
呈现为.html
。 我如何让 Eclipse 将 .ejs 文件解释为 .html?
例如,这是一个基本的快递结构是如何设置的......
project
--public
--views
----layout.ejs
----index.ejs
----partials
------partial1.ejs
--server.js
server.js 看起来像...
var express = require('express'),
partials = require('express-partials'),
http = require('http'),
path = require('path');
var app = express();
// all environments
app.configure(function() {
app.set('port', process.env.PORT || 3838);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
// Middleware
app.use(partials());
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
http.createServer(app).listen(app.get('port'), function(){
console.log('App listening on port ' + app.get('port'));
});
你的路线看起来像...
server.get("/", function(req, res) {
res.render("index");
});
最后,你的 layout.ejs ...
<html>
<head>
<title></title>
</head>
<body>
<%- body %>
</body>
</html>
和 index.ejs ...
<div id="index">
<%- include partial1.ejs %>
</div>
如果您需要对工作示例的参考,这里是
您需要使用新的包含语法:
之前:<%- include test.html %> 之后:<%- include ('test') %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.