Pregunta

Tengo un par de proyectos en Django y alternar entre uno y otro de vez en cuando. Todos ellos tienen un / media / ruta, que es servido por, y todos ellos tienen una archivo django.views.static.serve /media/css/base.css .

El problema es que cada vez que corro un proyecto, las solicitudes a base.css devolver un HTTP 304 (no modificado), probablemente debido a la marca de tiempo no ha cambiado. Pero cuando corro el otro proyecto, se devuelve el mismo 304, haciendo que el navegador utilice el archivo almacenado en caché por el proyecto anterior (y por lo tanto, el uso de la hoja de estilo incorrecto).

Sólo para que conste, aquí están las clases de middleware:

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

Siempre utilice la dirección por defecto http: // localhost: 8000 . ¿Hay alguna otra solución (que no sea el uso de diferentes puertos -. 8001, 8002, etc)?

¿Fue útil?

Solución

Puede rodar su propio middleware para que:

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

Básicamente, sólo se elimina HTTP_IF_MODIFIED_SINCE cabecera de la petición.

Pensamiento Posterior:. O bien, puede monkeypatch django.views.static.serve y reemplazar la función was_modified_since por el uno, que siempre vuelve True

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top