【问题标题】:How to disable caching for some routes in the Express 4 applications?如何禁用 Express 4 应用程序中某些路由的缓存?
【发布时间】:2021-06-25 14:41:13
【问题描述】:

我试过这些例子:Removing all headers from express.js 这个Disable etag Header in Express Node.js 和这个https://github.com/expressjs/express/issues/2472 但不幸的是他们没有解决我的问题。在 Firefox、Opera 和 Chrome 中,当开发人员工具打开并禁用缓存时,或者当我在浏览器启动后第一次启动我的应用程序时,我的应用程序运行良好。我知道这与缓存有关。请告诉我,如何在 Express 应用程序中禁用某些路由的缓存。可能吗?有没有通用的方法来做到这一点?

附注我很惊讶,但我的 Express 应用在 Internet Explorer 11 中完美运行

【问题讨论】:

    标签: node.js express caching etag


    【解决方案1】:

    在 Express.js 中处理缓存时需要考虑两件事

    1. ETag
    2. Cache-Control 标头。

    ETag

    如果您的动态内容不能从 ETags 中受益,最好禁用它,因为每次请求都会产生很小的开销。

    app.set('etag', false)
    

    缓存控制

    要完全禁用缓存,请使用以下标头:

    app.use((req, res, next) => {
      res.set('Cache-Control', 'no-store')
      next()
    })
    

    此标头不会影响express.static() 中间件。它以自己的方式处理缓存。

    【讨论】:

    • 不幸的是它没有效果:(
    猜你喜欢
    • 2013-10-07
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    相关资源
    最近更新 更多