0

使用 Whitenoise 和 Debug=False 在生产中不能很好地提供我的静态文件。

有时它服务,有时它找不到静态。我有以下设置:

# Static / Media
MEDIA_URL = os.environ.get('MEDIA_URL', '/media/')
MEDIA_ROOT = os.path.join(BASE_DIR, '.media')
STATIC_URL = os.environ.get('STATIC_URL', '/staticfiles/')
STATIC_ROOT = os.path.join(BASE_DIR, '.static')
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'frontend/static'),
]
STATICFILES_STORAGE = 'whitenoise.storage.CompressedStaticFilesStorage'

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
    ...

在部署到 AWS ECS 时,我通常在 docker 上收集静态数据。此外,如果我在python manage.py collectstatic本地运行,我可以在我的 STATIC_ROOT 上找到文件。

问题出在调试 False 的生产中,如果我通过浏览器访问,有时它会返回静态正确,有时它会给出 404 错误。

我的包版本:

  • django==3.0.3
  • 白噪声==5.0.1

它可能是什么?请提供任何帮助。

4

0 回答 0