DjangoテストサーバーでHTTP 304を防ぐ方法
-
02-10-2019 - |
質問
私はダジャンゴにいくつかのプロジェクトを持っています、そして、時々一方と別のものの間に交互になります。それらはすべて、 /メディア /パスを持っています。 django.views.static.serve, 、そして彼らはすべてを持っています /media/css/base.css ファイル。
問題は、1つのプロジェクトを実行するたびに、 base.css おそらくタイムスタンプが変更されていないため、HTTP 304(変更されていない)を返します。しかし、他のプロジェクトを実行すると、同じ304が返され、ブラウザに以前のプロジェクトによってキャッシュされたファイルを使用します(したがって、間違ったスタイルシートを使用して)。
記録のためだけに、ミドルウェアのクラスは次のとおりです。
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.transaction.TransactionMiddleware',
)
私は常にデフォルトのアドレスを使用しています http:// localhost:8000。別の解決策はありますか(異なるポートを使用する以外は8001、8002など)?
解決
あなたはそのためにあなた自身のミドルウェアをロールすることができます:
class NoIfModifiedSinceMiddleware(object):
def process_request(self, request):
request.META.pop('HTTP_IF_MODIFIED_SINCE', None)
基本的に、リクエストからhttp_if_modified_sinceヘッダーを削除するだけです。
後付け:またはあなたはMonkeypatchすることができます django.views.static.serve
交換します was_modified_since
常に戻ってきます True
.
所属していません StackOverflow