有时在开发过程中,阻止 HTTP 304 响应(有利于 200 响应)并导致Connect/Express 静态中间件从文件系统读取每个响应,而不是进行任何缓存,这将是非常好的。
我尝试过使用maxAge
0 和 1 的值,但无济于事:
app.use(express.static(__dirname + '/public', { maxAge: 1 }))
有时在开发过程中,阻止 HTTP 304 响应(有利于 200 响应)并导致Connect/Express 静态中间件从文件系统读取每个响应,而不是进行任何缓存,这将是非常好的。
我尝试过使用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();
});
app.disable('etag');
防止“etag”响应可能会有所帮助
它会在每次响应时从文件系统中读取。只是如果请求 ETAG 与响应 ETAG 匹配,它不会发送响应的正文,因为它不必发送。它是具有相同哈希的相同文件。这就是 304 响应的工作原理。
为什么要阻止 304 响应?
此解决方案只是一种解决方法。您可以通过在 Chrome 中禁用缓存来从浏览器端解决问题。如果您需要在 Chrome 以外的地方工作,例如 iOS 上的 Safari,这对您没有帮助。