我正在开发一个动态应用程序,我们不想缓存HTML(即购物车内容可以从一个页面刷新更改为下一个页面刷新) . 为此,我正在调用设置缓存控制头的中间件以避免缓存 . 但是,所述缓存控制头也适用于获取静态资源 . 出于明显的性能原因,这是不希望的行为 . 我们def想要缓存静态资源 . 我的问题是这样的...有没有办法为静态资源和渲染的html设置差异响应头?我尝试将setHeaders选项传递给express.static中间件,但线程挂起,大概是因为我们试图设置两次相同的响应头 . 任何帮助是极大的赞赏!
Edit :添加环境信息 -
我在Express 4和Node 4.4上
Edit :添加示例代码 . 这是来自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();
});
1 回答
app.use(express.static("static", {maxage : 0}))
more info也许在测试之前清除浏览器中所有准备好的缓存文件 .