刚刚将我的 Node.js 和 Express 版本分别更新为 0.10.21 和 3.4.4,现在我在开发(和生产)中看到了一些奇怪的视图缓存。
似乎从包含在其他视图(或者可能是所有视图?)中的视图生成的 html 正在被缓存。
例如:
布局.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设置为 false ,我仍然会看到header.jade部分呈现为就好像它在上一页上一样(使用“overbackground”类在 #header 上),好像pageVars.headerOverBackground仍然为真。
但这是错误的,我有 console.log() 的证明。
难道我做错了什么?我只是非常困惑吗?我已经在开发和生产模式下运行 Node,甚至在我的 Express 中添加了
app.disable('view cache');
无济于事...
编辑:
无论我重新加载页面多少次,它都会加载缓存的视图。如果我重新启动节点并重新加载,则会出现正确的视图。