在我们的Express中间件中,我们打电话给:
app.enable('etag');
问题在于,对于JSON请求,客户端将获得应该始终重新评估/重新发送的JSON请求的304状态代码。
所以我的问题是,使用Express中间件,如何为静态资产启用etag,但是为JSON请求禁用它?
我可能需要检查每个请求的标头,并为每个请求启用/禁用etags?
答案 0 :(得分:0)
所以在制作中,似乎这会起作用:
app.enable('etag');
app.use("/public", express.static(path.join(__dirname, "..", "public")));
app.use(function (req, res, next) {
// we don't want to cache any JSON response
res.setHeader('Cache-Control', 'no-cache, no-store');
next();
});
app.use(function(req,res){
res.json({some:'this will never be cached'});
});
我认为这将实现允许客户端缓存静态资产,但它永远不会缓存客户端中的任何JSON响应。