簡體   English   中英

如何在dot.js模板引擎中包含頁眉和頁腳?

[英]How to include headers, footers in dot.js templating engine?

我認為我所要做的(根據git hub上的文檔)是將{{#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>

但它似乎不起作用。 我什至嘗試導入withdoT.js ,但還是沒有。 我得到的只是“內部服務器錯誤”,如果您能夠使文件包含在dot.js上的工作,請您分享一下自己的知識。 我喜歡這個漂亮的引擎,但是它的文檔卻不那么漂亮。

我不知道它是否適用於您,但是在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”對象中輸出字符串。

您當然可以適應和增強它以滿足您的特定需求

我很確定doT在尋找包含與當前文件相同目錄的目錄。 假設當前模板在視圖內部,我認為僅從路徑中刪除“ / views”就可以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM