我认为我必须做的只是{{#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上的工作,请分享您的知识。我喜欢这个漂亮的引擎,但是它的文档并不那么漂亮。
答案 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;从路径应该做的伎俩...