質問

私はダジャンゴにいくつかのプロジェクトを持っています、そして、時々一方と別のものの間に交互になります。それらはすべて、 /メディア /パスを持っています。 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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top