我尝试创建包含登录表单的主页面(node.js和mongoDB应用程序的一部分)。 要添加视图部分,我包含了带有返回HTML功能的js文件,但我可以看到更好的是使用模板引擎。 一切都没问题,直到我将一个已编译的swig部分包含在另一个内部。 主页的输出正常,但登录部分输出如页面上的文本。 如何将登录HTML输出为HTML而不是纯文本?
需要更多信息才能理解这个问题吗?
提前谢谢。
var swig = require('swig');
var mainPage_tpl = swig.compileFile(__dirname+'/../views/mainpage_tpl.html');
var formLogin_tpl = swig.compileFile(__dirname+'/../views/login_tpl.html');
var loginOutput = formLogin_tpl();
var mainPageOutput = mainPage_tpl({
title: 'Sometitle',
pagetitle: 'Somepagetitle',
content: loginOutput
});
exports.get = function(req, res){
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(mainPageOutput);
res.end();
}
mainpage_tpl.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{title}}</title>
<link rel="stylesheet" href="/assets/reset.css" />
<link rel="stylesheet" href="/assets/style.css" />
<script type="text/javascript" src="/assets/jquery-2.0.0.js"></script>
<script type="text/javascript" src="/assets/script.js"></script>
</head>
<body id="login_page">
<h1>{{pagetitle}}</h1>
<div id="content">{{content}}</div>
</body>
</html>
答案 0 :(得分:0)
如果你想要包含文字HTML,你需要告诉Swig不要使用safe
过滤器来逃避它:
...
<div id="content">{{ content|safe }}</div>
...