2011-03-05 27 views
13

我在我的本地開發服務器上有static.serve安裝程序,但它似乎緩存靜態文件(在我的情況下,CSS,JavaScript和圖像),直到我重新啓動服務器。我不使用Apache和我有緩存設置爲:爲什麼Django使用django.views.static.serve緩存我的靜態?

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

刪除緩存聲明一起似乎並沒有幫助的。

在我從較早的1.1版本升級到1.2.5之前,這並沒有發生。

每次我進行樣式更新時,每次都需要重新啓動開發服務器(通過觸摸python文件或通過命令行)是一種痛苦。

編輯 - 的建議,我已經添加了settings.py和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

你確定他們沒有被緩存在你的瀏覽器嗎? – 2011-03-05 00:19:01

+0

不幸的是,這不是問題。我已經檢查了所有可以想象的方式(清除緩存,在多個瀏覽器中打開一個靜態文件,等等)。 – Jason 2011-03-05 00:25:51

+0

緩存後端與資產緩存沒有任何關係。瀏覽器中的F5刷新瀏覽器緩存。 – 2011-03-05 11:27:35

回答

4

底線在這裏,根據在提供的數據上,似乎是您的瀏覽器正在緩存媒體文件。推薦的解決方法是刷新瀏覽器中的頁面。查看你的帖子上的所有評論。

但是,如果你真的不希望媒體文件被緩存,你可以簡單地設置它們不斷的唯一名稱。像這樣。

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

現在每次重新加載頁面時的文件名會有點不同的基於Unix的時間戳,迫使瀏覽器重新加載它所有的時間。

相關問題