我尝试了以下示例:从Express.js中删除所有头,在Express node.js中禁用etag头,以及https://github.com/expressjs/Express/issues/2472,但不幸的是,它们没有解决我的问题。在Firefox、Opera和Chrome中,当开发者工具打开并禁用缓存时,或者当我在浏览器上线后第一次启动应用程序时,我的应用程序都能正常工作。我知道这与缓存有关。请告诉我,如何在Express应用程序中禁用某些路由的缓存。有可能吗?有没有一个通用的方法来做这件事?
附注。我很惊讶,但我的Express应用程序在Internet Explorer 11中运行得很好
在Express.js中处理缓存时需要考虑两件事
埃塔格
如果您的动态内容不能从ETags中受益,那么最好禁用它,因为它在每个请求中带来的开销很小。
app.set('etag', false)
缓存控制
要完全禁用缓存,请使用以下头:
app.use((req, res, next) => {
res.set('Cache-Control', 'no-store')
next()
})
此标头不影响express.static()
中间件。它以自己的方式处理缓存。