web-dev-qa-db-ja.com

Connect / Express静的ミドルウェアでHTTP304応答を完全に防ぐ方法は?

開発中の時々、HTTP 304応答(200を優先)を防ぎ、 Connect/Express)を引き起こすのは本当に素晴らしいでしょうstatic middleware キャッシュをまったく行わずに、ファイルシステムからすべての応答を読み取ります。

maxAgeの値を0と1で試してみましたが、役に立ちませんでした。

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

開発中にこれを行うと、200の応答が得られます。

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

応答で「etag」を防止すると役立つ場合があります

8
Mohan R

すべての応答でファイルシステムから読み取ります。リクエストETAGがレスポンスETAGと一致する場合、必要がないため、レスポンスの本文を送信しないというだけです。同じハッシュを持つ同じファイルです。これが304応答の仕組みです。

なぜ304応答を防ぎたいのですか?

5
Jonathan Ong

このソリューションは単なる回避策です。 Chromeでキャッシュを無効にする によって、ブラウザ側から問題を解決できます。 iOSのSafariなど、Chrome以外で作業する必要がある場合、これは役に立ちません。

0
Jacob Marble