2010-04-28 23 views
6

Django'da birkaç projem var ve şimdi her biri ve diğeri arasında bir alternatif var. Hepsi django.views.static.serve tarafından sunulan bir ortam/yola sahip ve hepsi bir /media/css/base.css dosya var.Django test sunucusunda HTTP 304 nasıl engellenir?

Sorun, bir proje çalıştırdığımda, base.css isteklerinin bir HTTP 304 (değiştirilmemiştir) olarak döndürülmesidir, çünkü zaman damgası değişmemiş olabilir. Ancak, diğer projeyi çalıştırdığımda, aynı 304 döndürülür ve tarayıcı, önceki proje tarafından önbelleğe alınan dosyayı kullanır (ve dolayısıyla yanlış stil sayfasını kullanır).

Bilgin için buraya katman sınıfları şunlardır:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.middleware.transaction.TransactionMiddleware', 
) 

Hep varsayılan adresi http://localhost:8000 kullanın. Başka bir çözüm var mı (farklı portların kullanılması dışında - 8001, 8002, vs.)?

+0

Hello @Augusto Men. Varsayılan port 8000'i kullanmak istemezseniz, port no'yu komut asistanı ile yönetebilirsiniz.py runserver 8001 –

cevap

11

Bunun için Kendi orta dönebilirsiniz:

class NoIfModifiedSinceMiddleware(object): 
    def process_request(self, request): 
     request.META.pop('HTTP_IF_MODIFIED_SINCE', None) 

Temelde, sadece istekten HTTP_IF_MODIFIED_SINCE başlığını kaldırır.

Afterthought: Yoksa django.views.static.serve monkeypatch ve her zaman True döndürür biri tarafından was_modified_since fonksiyonunu değiştirebilir.

+0

merhaba @alex vasi! Aynı sorunu yaşıyorum lütfen cevabınızı belirtin, böylece kodun üstünü nasıl uygulayabilirim. –

+0

Middlewares hakkında bilgi, kolay ve django docs harika. "Monkeypatch" kısmı için, bu, djagno modülünün kurulu olduğu yeri bulmanızı gerektirir, ardından django/view/static/öğesini yanıtta belirtildiği gibi düzenler. –

+0

Lütfen bu katman yazılımını eklerken, listenin çalışacağı ilk ara katman olması gerektiğini unutmayın. Çözüm için teşekkürler! –

İlgili konular