剛剛將我的Node.js和Express版本分別更新爲0.10.21和3.4.4,現在我在開發(和生產)中看到一些奇怪的視圖緩存。Weird Express Jade視圖緩存行爲
似乎從其他視圖(或可能是所有視圖?)中包含的視圖生成的html被緩存。
例如:
layout.jade
doctype 5
html
head
title= title
meta(name="viewport", content="width=device-width, initial-scale=1.0")
link(rel='stylesheet', href='/stylesheets/style.css')
body
#container
include header
block content
include footer
header.jade
- var headerClass = ""
if pageVars.headerOverBackground
- headerClass = "overbackground"
#header(class=headerClass)
[snip]
somepage.jade
extends layout
block content
[snip]
我第一次調用/SomePage的,傳遞pageVars.headerOverBackground設置爲TRUE,該視圖被正確地呈現。如果我訪問不同的URL,/someotherpage,具有相同的佈局和標題,在pageVars.headerOverBackground集傳送到假的,我仍然可以看到呈現,彷彿它是前一頁上header.jade部分(與#header上的「overbackground」類),就好像pageVars.headerOverBackground仍然如此。
但它是錯誤的,我有console.log()的證明。
我做錯了什麼?我只是非常困惑?我一直在開發和生產模式下運行的節點,甚至穿插我的快遞與
app.disable('view cache');
無濟於事......
編輯:
不管有多少次我重新加載頁面,它加載緩存視圖。 如果我重新啓動節點並重新加載,則顯示正確的視圖。
聽起來類似於正在發生的事情[這裏](http://stackoverflow.com/questions/16922802/express-view-cache-acting-funny)(雖然還沒有解決) – robertklep
(順便說一句,我不能重現它使用'express @ 3.4.4','jade @ 0.35.0'和'node @ 0.10.21') – robertklep
我不確定它是否是你的錯字,但是......你試過追加一個' '如果pageVars.headerOverBackground'也是?或者你可能想簡化它只是' - headerClass = pageVars.headerOverBackground? 'overbackground':'''。讓我知道它是否有助於某種方式。 –