Framework:node.js/express.js/Jadenode.js/Jade - 如何預先編譯jade文件並緩存它?
問題:在生產env中,當一個jade文件通過express呈現時,jade cache會這樣,所以未來渲染速度會更快。
當我啓動的Node.js應用程序,我怎麼能預先編譯(或)預渲染(如預熱)中的所有文件玉所以它已在緩存中的請求時開始進來......
我可以使用文件夾遞歸,我只需要知道如何預編譯(或)預渲染。
這可能嗎?
Framework:node.js/express.js/Jadenode.js/Jade - 如何預先編譯jade文件並緩存它?
問題:在生產env中,當一個jade文件通過express呈現時,jade cache會這樣,所以未來渲染速度會更快。
當我啓動的Node.js應用程序,我怎麼能預先編譯(或)預渲染(如預熱)中的所有文件玉所以它已在緩存中的請求時開始進來......
我可以使用文件夾遞歸,我只需要知道如何預編譯(或)預渲染。
這可能嗎?
玉石有模板的預編譯和緩存內置。
只需指定cache: true
選項jade.compileFile
,並通過所有的模板文件的迭代。
var options = {cache: true};
// iterate/recurse over your jade template files and compile them
jade.compileFile('./templates/foo.jade', options);
// Jade will load the compiled templates from cache (the file path is the key)
jade.renderFile('./templates/foo.jade');
如果你不使用任何參數,可以直接編譯玉模板用HTML或咕嚕大口,並使其監視文件修改
在命令行試試: jade view/map-beacons.jade -D
如果你確實需要使用參數,我會用Andrew Lavers的答案。
compileFile
返回你可以用它來傳遞參數,即fn({ myJsVar: 'someValue' })
還有在命令行客戶的選擇,但我沒有找到它的任何使用功能: jade view/map-beacons.jade -cD
在哪裏寫這個代碼? –
無論你喜歡什麼......你都可以直接從高速路由中調用'jade.renderFile',但是我懷疑如果你使用玉作爲快速查看引擎,它會利用內置的緩存。 –