如何在dot.js模板引擎中包含页眉,页脚?

时间:2013-02-24 18:11:36

标签: javascript node.js template-engine dot.js

我认为我必须做的只是{{#def.loadfile('/snippet.txt')}} <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>Data</title> <link href="/css/style.css" rel="stylesheet" type="text/css" /> </head> <body> {{#def.loadfile('/views/includes/header.txt')}} <section> {{~it.arrOut:value:index}} {{=value}}! {{~}} </section> </body> </html> 放入我的模板中,所以它看起来像这样:

{{1}}

但它似乎没有用。我甚至尝试导入(according to docs on git hub),但仍然没有。 我得到的只是“内部服务器错误”,如果您能够使文件包含dot.js上的工作,请分享您的知识。我喜欢这个漂亮的引擎,但是它的文档并不那么漂亮。

2 个答案:

答案 0 :(得分:1)

我不知道它是否适用于你,但是在nodejs上,使用expressjs和express-dot.js, 我所做的是定义loadfile:

app.js中的

var doT = require('express-dot');
doT.setGlobals({
    loadfile:function(path){return fs.readFileSync(__dirname + path, 'utf8');}
});
index.dot中的

{{#def.loadfile('/views/_submit_form.html')}}

基本上它将loadfile添加为一个函数,它接受一个路径并在dotjs的“def”对象中输出一个字符串。

您当然可以根据您的特定需求进行调整和增强

答案 1 :(得分:0)

我非常确定doT正在寻找包含从当前文件所在目录开始的包含。假设当前模板是内部视图,我认为只需删除&#34; / views&#34;从路径应该做的伎俩...