有时在开发过程中,阻止HTTP 304响应(支持200的)会非常好,并导致Connect/Express static middleware读取文件系统的每个响应,而不是做任何缓存。
我尝试使用maxAge
值为0和1,但无济于事:
app.use(express.static(__dirname + '/public', { maxAge: 1 }))
答案 0 :(得分:19)
我在开发期间通过这样做得到200个回复:
var express = require('express');
app = express();
app.use(function(req, res, next) {
req.headers['if-none-match'] = 'no-match-for-this';
next();
});
答案 1 :(得分:8)
app.disable('etag');
防止'etag'响应可能会有所帮助
答案 2 :(得分:5)
它确实从每个响应的文件系统中读取。只是如果请求ETAG与响应ETAG匹配,它就不会发送响应的主体,因为它不需要。它是具有相同散列的相同文件。这就是304响应的工作原理。
为什么要阻止304回复?
答案 3 :(得分:0)
此解决方案只是一种解决方法。您可以通过disabling caching in Chrome从浏览器端解决问题。如果您需要处理Chrome之外的某些内容(例如iOS上的Safari),这对您无效。