【问题标题】:Express JS - Want to cache static resources but NOT rendered HTMLExpress JS - 想要缓存静态资源但不呈现 HTML
【发布时间】:2016-04-17 03:36:16
【问题描述】:

我正在开发一个我们不想缓存 HTML 的动态应用程序(即购物车内容可以从一个页面刷新更改为下一个页面)。为此,我正在调用设置缓存控制标头以避免缓存的中间件。然而,在获取静态资源时,所述缓存控制标头也适用。出于明显的性能原因,这是不受欢迎的行为。我们定义想要缓存静态资源。我的问题是……有没有办法为静态资源与呈现的 html 设置差异响应标头?我尝试将 setHeaders 选项传递给 express.static 中间件,但线程挂起,大概是因为我们试图设置相同的响应头两次。非常感谢任何帮助!

编辑:添加环境信息-

我在 Express 4 和 Node 4.4 上

编辑:添加示例代码。这是 app.js 中的相关部分,它积极避免在浏览器中缓存 HTML。

app.use(express.static(config.static.public));

// ...Stuff

app.use(function (req, res, next) {

    // Don't cache html
    res.set('Cache-Control', 'no-cache, private, no-store, must-revalidate, '
        + 'max-stale=0, post-check=0, pre-check=0');
    res.set('Expires', 'Fri, 31 Dec 1998 12:00:00 GMT');
    next();

});

【问题讨论】:

  • 添加您的代码,请重现您的问题

标签: node.js http express cache-control


【解决方案1】:

app.use(express.static("static", {maxage : 0})) more info

也许在测试之前清除浏览器中所有准备好的缓存文件。

【讨论】:

    猜你喜欢
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    相关资源
    最近更新 更多