gpt4 book ai didi

django - 在 Heroku 上为 Django 静态文件添加过期 header

转载 作者:行者123 更新时间:2023-12-04 23:56:28 24 4
gpt4 key购买 nike

我正在尝试优化我的网页,但在我的静态文件上设置到期日期标题时遇到了问题。

我正在运行 django-1.5、python-2.7.3。

到目前为止,这是我在 settings.py 中的缓存设置:

CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': os.path.join(PROJECT_ROOT, 'cache/'),
}
}

CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_SECONDS = 5 * 60
CACHE_MIDDLEWARE_KEY_PREFIX = ''

MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
...
'django.middleware.cache.FetchFromCacheMiddleware',
)

我在 settings.py 中的静态文件设置:
import os.path

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
PROJECT_ROOT = os.path.abspath(os.path.join(PROJECT_DIR, '..'))

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles/')

STATIC_URL = '/static/'

STATICFILES_DIRS = (
os.path.join(PROJECT_DIR, 'static'),
)

STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

我找到的最接近的建议是 here ,但我无法修改 Heroku 上的 .htaccess 文件。

任何帮助是极大的赞赏。谢谢!

最佳答案

django staticfiles 应用程序不提供对自定义 header 的开箱即用支持。您必须将自己的 View 组合在一起以提供文件并将自定义 header 添加到 HttpResponse。

但是您不应该使用 Django 为您的静态文件提供服务。 这是一个糟糕的主意 .

  • Django 是单线程的,并且是阻塞的。所以每次你为用户提供一个静态文件时,你实际上并没有提供其他任何东西(包括你的应用程序代码,这是 Django 的目的)。
  • Django 的 staticviews 文件不安全且不稳定。该文档特别指出不要在生产中使用它。所以不要在生产中使用它。曾经。
  • 关于django - 在 Heroku 上为 Django 静态文件添加过期 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15714947/

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