快速jscaching索引页面

我使用express.js在节点中创build了一个身份validation系统。 它工作正常,但是当我尝试注销,我redirect到索引页面。 “本地主机:3100 /”。 当我到那里时,有时会显示caching的状态为login状态,有时则显示新的刷新页面。 如果刷新页面,一切都恢复正常。 如果我redirect到一个不同的页面,那么它工作正常。 是否索引页特别是,该应用程序正在呈现caching版本。

这主要是当我改变基于res.locals.currentUser的内容时发生的。 currentUser正在被设置在中间件中。 在Navbar中,我使用这个<%if(currentUser)%> <%} else {%> <%}%>。 所以在redirect时,有时会刷新,有时候会使用caching视图。

另外我正在使用express.js 3。

对于你的/路线,你想添加一个中间件,强制它总是加载而不caching。 添加这个:

 app.use(function noCacheForRoot(req, res, next) { if (req.url === '/') { res.header("Cache-Control", "no-cache, no-store, must-revalidate"); res.header("Pragma", "no-cache"); res.header("Expires", 0); } next(); }); 

在你的app.use(app.router)app.user(express.static(...))语句之前,将这个中间件放在列表的app.use(app.router)