2011-03-05 9 views
13

Tengo la configuración estática.serve en mi servidor de desarrollo local, pero parece almacenar en caché archivos estáticos (en mi caso, css, javascript e imágenes) hasta que reinicie el servidor. No estoy usando Apache, y tengo el conjunto de caché para:¿Por qué Django Caching my static con django.views.static.serve?

CACHES = { 
    'default': { 
     'BACKEND': 'django.core.cache.backends.dummy.DummyCache', 
    } 
} 

Extracción de la declaración cachés todos juntos no parece ayudar a cualquiera.

Esto no sucedió antes de actualizar a 1.2.5 desde una versión 1.1 anterior.

Me duele tener que reiniciar el servidor de desarrollo todo el tiempo (ya sea tocando un archivo python o mediante la línea de comandos) cada vez que realizo una actualización de estilo.

Editar - settings.py como se sugiere, he agregado y url.py

Settings.py

# Django settings for zeiss_elearning project. 
from django.utils.translation import ugettext_lazy as _ 
gettext = lambda s: s 

DEBUG = True 
TEMPLATE_DEBUG = DEBUG 

ADMINS = (
    ('Jason Roy', '###'), 
) 

#Email settings 

EMAIL_HOST = '###' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = '####' 
DEFAULT_FROM_EMAIL = '[email protected]' 
MANAGERS = ADMINS 

DATABASES = { 
'default': { 
    'ENGINE' : 'django.db.backends.mysql', 
    'NAME' : '###', 
    'USER' : '###', 
    'PASSWORD' : '###', 
    'HOST' : '/Applications/MAMP/tmp/mysql/mysql.sock', 
} 
} 

TIME_ZONE = 'America/Tijuana' 


LANGUAGE_CODE = 'en-us' 

SITE_ID = 1 

USE_I18N = True 

USE_L10N = True 

MEDIA_DEBUG_DOC_ROOT = '/Users/jason/Bird Takes Bear/Projects/Carl Zeiss/site 2.0/media' 
MEDIA_ROOT = '/Users/jason/Bird Takes Bear/Projects/Carl Zeiss/site 2.0/media' 

MEDIA_URL = '/static_files/' 

ADMIN_MEDIA_PREFIX = '/media/admin/' 

# Make this unique, and don't share it with anybody. 
SECRET_KEY = '####' 

# List of callables that know how to import templates from various sources. 
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
#  'django.template.loaders.eggs.Loader', 
) 

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.cache.UpdateCacheMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.doc.XViewMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'cms.middleware.page.CurrentPageMiddleware', 
    'cms.middleware.user.CurrentUserMiddleware', 
    'cms.middleware.toolbar.ToolbarMiddleware', 
    'cms.middleware.media.PlaceholderMediaMiddleware', 
    #'django.middleware.cache.FetchFromCacheMiddleware', 
    #'debug_toolbar.middleware.DebugToolbarMiddleware', 
) 

ROOT_URLCONF = 'zeiss_elearning.urls' 

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.core.context_processors.auth', 
    'django.core.context_processors.i18n', 
    'django.core.context_processors.request', 
    'django.core.context_processors.media', 
    'cms.context_processors.media', 
) 

TEMPLATE_DIRS = (, 
    '/Users/jason/Bird Takes Bear/Projects/Carl Zeiss/site 2.0/templates', 
    '/Users/jason/Bird Takes Bear/Projects/Carl Zeiss/site 2.0/cms/templates', 
) 

SESSION_COOKIE_AGE = 86400 

LOGIN_URL = '/membership/login/' 

LOGIN_REDIRECT_URL = "/" 

AUTHENTICATION_BACKENDS = ( 
    'zeiss_elearning.shared.email_auth.EmailBackend', 
    'django.contrib.auth.backends.ModelBackend', 
) 
AUTH_PROFILE_MODULE = 'membership.UserProfile' 
FORCE_SCRIPT_NAME = '' 

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.admin', 
    'cms', 
    'cms.plugins.text', 
    'cms.plugins.picture', 
    'cms.plugins.link', 
    'cms.plugins.file', 
    'cms.plugins.snippet', 
    'cms.plugins.googlemap', 
    'cms.plugins.zeiss_video', 
    'cms.plugins.html', 
    'cms.plugins.quiz', 
    'cms.plugins.popup', 
    'mptt', 
    'publisher', 
    'zeiss_elearning.forms', 
    'zeiss_elearning.membership', 
    'zeiss_elearning.quiz', 
    'menus', 
    'south', 
) 
INTERNAL_IPS = ('127.0.0.1',) 

#CMS Settings 


CMS_REDIRECTS = True 
CMS_MENU_TITLE_OVERWRITE = True 
CMS_DBGETTEXT = False 

CMS_DEFAULT_TEMPLATE = 'base.html' 
CMS_ALLOW_HTML_TITLES = False 

CMS_TEMPLATES = (
    ('base.html', _('Default')), 
    ('cirrus.html', _('Cirrus')), 
    ('atlas.html', _('Atlas')), 
) 

# Site title for your template 
CMS_SITE_TITLE = 'Zeiss Cirrus' 

CMS_LANGUAGE_REDIRECT = False 

CMS_LANGUAGES = (
    ('en', gettext('English')), 
) 
LANGUAGES = (
    ('en', gettext('English')), 
) 
CMS_APPLICATIONS_URLS = (
('zeiss_elearning.quiz.urls', 'Quiz') 
) 

urls.py

from django.conf.urls.defaults import * 
from django.contrib import admin 
from django.conf import settings 

admin.autodiscover() 

urlpatterns = patterns('', 
    (r'^membership/', include('zeiss_elearning.membership.urls')), 
    (r'^admin/', include(admin.site.urls)), 

) 
urlpatterns += patterns('', 
    url(r'^', include('cms.urls')), 
) 
if settings.DEBUG: 
    urlpatterns += patterns('', 
     (r'^static_files/(?P<path>.*)$', 'django.views.static.serve', 
     {'document_root': settings.MEDIA_DEBUG_DOC_ROOT}),) 
+0

¿Seguro que no están siendo cacheados en su ¿navegador? –

+0

Desafortunadamente, ese no es el problema. He comprobado todas las formas imaginables (borrar el caché, abrir un único archivo estático en varios navegadores, etc. – Jason

+0

El backend de caché no tiene nada que ver con el almacenamiento en memoria caché de los activos. F5 en el navegador vacía el caché del navegador –

Respuesta

4

El fondo aquí, basada en los datos proporcionados, parece ser que su navegador está almacenando en caché los archivos multimedia. El método recomendado para resolver esto es súper actualizar las páginas en su navegador. Vea TODOS los comentarios en su publicación.

Sin embargo, si realmente no desea que los archivos de medios se almacenen en la memoria caché, simplemente puede configurarlos constantemente. Al igual que.

<link rel="stylesheet" type="text/css" href="/site_media/css/style.css?{% now "U" %}" /> 

Ahora, cada vez que la página se vuelve a cargar el nombre del archivo será un poco diferente en función de la marca de tiempo Unix, forzando al navegador a cargar todo el tiempo.