在开发过程中,有时候最好是防止 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匹配,它就不会发送响应体,因为没有必要。这是相同哈希值的相同文件。这就是304响应的工作原理。
你为什么要防止304响应?
这个解决方案只是一个权宜之计。你可以通过在Chrome中禁用缓存来从浏览器端解决问题。但如果你需要在Chrome以外的地方工作,比如iOS上的Safari,这并不能帮到你。