【发布时间】:2013-02-01 07:02:00
【问题描述】:
在开发过程中,非常好阻止 HTTP 304 响应(支持 200 响应),并导致 Connect/Express static middleware 从文件系统读取每个响应,而不是执行任何操作完全缓存。
我尝试过使用maxAge 0 和1 的值,但无济于事:
app.use(express.static(__dirname + '/public', { maxAge: 1 }))
【问题讨论】:
在开发过程中,非常好阻止 HTTP 304 响应(支持 200 响应),并导致 Connect/Express static middleware 从文件系统读取每个响应,而不是执行任何操作完全缓存。
我尝试过使用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 响应?
【讨论】:
此解决方案只是一种解决方法。您可以通过disabling caching in Chrome 从浏览器端解决问题。如果您需要在 Chrome 以外的地方工作,例如 iOS 上的 Safari,这对您没有帮助。
【讨论】: