用这种方式将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(); };