【发布时间】:2013-01-03 07:09:14
【问题描述】:
我正在关注 Steven Senderson 关于 NodeJS 的帖子。正如question 中所建议的那样,我已经克服了由于 Express 中的版本更改而导致的破坏代码。现在,当我使用localhost:13253 访问我的index.html 页面时,它正在按原样呈现index.html 的内容。它没有使用layout.html 渲染它。我已经从ejs.js 和ejs-middleware 跟踪它,也调用了函数,但没有应用布局。服务端代码如下:
var express = require('express'),
app = express(),
api = require("./api/server.js"),
ejsm = require('ejs'),
ejsMiddleware = require('ejs-middleware');
app.use('/api', api);
app.use(ejsMiddleware(__dirname + '/Static', 'html', app));
app.use(express.static(__dirname + '/Static'));
app.listen(process.env.port || 12345);
编辑:-
//INDEX.HTML
this is homepage
//layout.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Inventify (alpha)</title>
<script type="text/jscript" src="/scripts/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="/scripts/knockout-2.2.0.js"></script>
<link rel="stylesheet" href="/Styles/app.css"/>
</head>
<body>
<h1 class="site-title">
<a href="/">Iventify<span class="version">(alpha)</span></a>
</h1>
<div class="main-container">
<%- body %>
</div>
</body>
<script type="text/javascript">
alert('from template');
</script>
</html>
【问题讨论】:
-
您应该发布 index.html 和 layout.html 的示例。从 Express 2.x 到 3.x,布局的处理发生了显着变化。现在由视图引擎来支持它,而不是嵌入到 Express.js 中
-
@HectorCorrea 我已经从布局和索引页面添加了代码
-
我怀疑您使用的是 Express 3.x,对吧?如果是这样,问题是对布局的支持发生了很大变化。我在这里写过这个问题hectorcorrea.com/blog/using-layouts-with-ejs-in-express-3-x
-
是的,我使用的是 express 3.x,我一定会查看这篇文章。