在我们的Express中间件中,我们调用:
app.enable('etag');问题是,对于JSON请求,客户端将获得一个304状态代码,而JSON请求应该始终被重新评估/重新发送。
所以我的问题是,使用Express中间件,我如何为静态资产启用etag,而为JSON请求禁用它?
我可能不得不检查每个请求的报头,并启用/禁用每个请求的etags?
发布于 2018-05-26 06:50:49
因此,在生产中,这看起来是可行的:
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响应。
https://stackoverflow.com/questions/50537698
复制相似问题