如何完全防止Connect / Express静态中间件中的HTTP 304响应?

有时在开发过程中,防止HTTP 304响应(有利于200)是非常好的 ,并使Connect / Express静态中间件读取文件系统的每个响应,而不是执行任何caching。

我曾尝试玩maxAge值0和1,无济于事:

 app.use(express.static(__dirname + '/public', { maxAge: 1 })) 

在开发过程中,我得到200个回应:

 var express = require('express'); app = express(); app.use(function(req, res, next) { req.headers['if-none-match'] = 'no-match-for-this'; next(); }); 

它确实从每个响应的文件系统读取。 只是如果请求ETAG匹配响应ETAG,它不会发送响应的主体,因为它不必。 这是相同的哈希相同的文件。 这是304响应如何工作。

你为什么要防止304响应?

 app.disable('etag'); 

预防“etag”可能有所帮助

这个解决scheme只是一个解决方法。 您可以通过在Chrome中禁用caching来解决浏览器端的问题。 如果您需要使用Chrome以外的某些function,如iOS上的Safari,则这无助于您。