用这种方式将Swig与node.js一起使用是不对的?如果是 – 为什么? 如果需要其他信息来回答这个问题,请告诉我. 如果可能,请添加有助于理解答案的链接或/和代码示例. 当前的代码工作并
如果需要其他信息来回答这个问题,请告诉我.
如果可能,请添加有助于理解答案的链接或/和代码示例.
当前的代码工作并制作我想要的东西,但有感觉这里的东西(或一切:))错了.
这是我的文件的样子:
视图/块了header.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
视图/块footer.html
</body> </html>
视图/布局home.html做为
{{HEADER_tpl|safe}}
<h1>Some heading</h1>
<div>Layout home</div>
{{FOOTER_tpl|safe}}
控制器/ home.js
var swig = require('swig');
var layout_home_tpl = swig.compileFile('views/layout-home.html');
var block_header_tpl = swig.compileFile('views/block-header.html');
var block_footer_tpl = swig.compileFile('views/block-footer.html');
var mainPageOutput = layout_home_tpl({
HEADER_tpl: block_header_tpl(),
FOOTER_tpl: block_footer_tpl()
});
exports.get = function( request, response ){
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(mainPageOutput);
response.end();
};
在此先感谢您的时间.
这不是“错误的”,但绝对不是典型的用法.首选方法是使用内置的 template inheritance:意见/ home.html做为
{% extends "layout/basic.html" %}
{% block content %}
<h1>Some heading</h1>
<div>Layout home</div>
{% endblock %}
意见/ basic.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
控制器/ home.js
var swig = require('swig');
exports.get = function( request, response ){
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(swig.renderFile('views/home.html'));
response.end();
};
