【发布时间】: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