gpt4 book ai didi

python - 在 Django 开发服务器中关闭静态文件的缓存

转载 作者:IT老高 更新时间:2023-10-28 22:07:04 59 4
gpt4 key购买 nike

有没有一种简单的方法可以在 Django 的开发服务器中关闭静态文件的缓存?

我正在使用标准命令启动服务器:

$ python manage.py runserver

我已将 settings.py 配置为从我的 Django 项目的 /static 目录中提供静态文件。我还有一个中间件类,它将 Cache-Control header 设置为 must-revalidate, no-cache 用于开发,但这似乎只影响不是在我的 /static 目录中。

最佳答案

@Erik Forsberg 的回答对我有用。这是我必须做的:

  • settings.py 中的 INSTALLED_APPS 中注释掉 staticfiles 应用程序:

    INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    #'django.contrib.staticfiles',
    )
  • settings.py 中设置我的 STATIC_URL 变量:

    STATIC_URL = '/static/'
  • 在我的项目的基础urls.py中添加一个条目:

    # static files w/ no-cache headers
    url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': settings.STATIC_ROOT}),

请注意,我还在中间件类 nocache.py 中设置 Cache-Control header :

class NoCache(object):
def process_response(self, request, response):
"""
set the "Cache-Control" header to "must-revalidate, no-cache"
"""
if request.path.startswith('/static/'):
response['Cache-Control'] = 'must-revalidate, no-cache'
return response

然后将其包含在 settings.py 中:

if DEBUG:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'nocache.NoCache',
)

关于python - 在 Django 开发服务器中关闭静态文件的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7013735/

59 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com