[英]Node.js, express.js & hogan.js: partials not loading correctly after second refresh
我的Express 3應用程序運行良好,但是第二次刷新站點時出了點問題。
var x = {footer:"footer", header:"header"}
exports.index = function(req, res){
res.render("index.html", {jow: "ieps", partials:x})
}
當我第一次訪問我的網站時,一切都很好,所有部分都很棒。
但是刷新時出現此錯誤:
Error: ENOENT, open '/Users/kevinvanhove/Documents/work/projects/basing/business/klanten/javascript/nodeJS/express/basing/views/<h2>wow</h2>.html'
但是,當刪除x變量並將對象文字直接添加到res.render參數列表時,所有這些都可以再次正常工作。
exports.index = function(req, res){
res.render("index.html", {jow: "ieps", partials:{footer:"footer", header:"header"}})
}
更新:index.html視圖
{{> header}}
<h1>jow en {{jow}}</h1>
{{> footer}}
快速瀏覽以下內容:
一些見識將不勝感激,謝謝。
就像上面評論的那樣,Consolitate.js更改了原始對象: https : //github.com/tj/consolidate.js/blob/master/lib/consolidate.js#L124
我一直通過使用部分副本來解決此問題:
// ...
var _ = require('underscore');
var partials = { layout: 'layout' };
app.get('/', function(request, response) {
response.render('index', { partials: _.clone(partials) });
});
這不是最好的解決方案,但它可以工作。
consolidate.js可能應該使用其他對象來緩存部分內容。 而且我設法為hogan做到了這一點,但這不適用於所有其他引擎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.