簡體   English   中英

Node.js,express.js和hogan.js:部分刷新在第二次刷新后無法正確加載

[英]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}}

快速瀏覽以下內容:

https://vine.co/v/M7BYi75pdrh

一些見識將不勝感激,謝謝。

就像上面評論的那樣,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.

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