如何在 Django 中为 WhiteNoise 5.1.0 设置 wsgi.py 文件?

Posted

技术标签:

【中文标题】如何在 Django 中为 WhiteNoise 5.1.0 设置 wsgi.py 文件?【英文标题】:How to setup wsgi.py file in Django for WhiteNoise 5.1.0? 【发布时间】:2020-11-24 19:14:53 【问题描述】:

我使用 Heroku,但静态文件有问题 - 它们是在 STATIC_ROOT 中创建的。我知道我需要为 WhiteNoise 设置 wsgi.py 文件。我尝试了一些不同的方法来设置它,但我每次都失败了。这是我的代码:

/wsgi.py

import os
from django.conf import settings
from django.core.wsgi import get_wsgi_application

from whitenoise import WhiteNoise

application = get_wsgi_application()
application = WhiteNoise(application, root=settings.STATIC_ROOT)

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'api_obs.settings')

这是错误线程中的最后一条错误消息:

gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.'

设置它的正确方法是什么?我的settings.py 文件是正确的here 是我之前对他们提出的问题。我只是没有声明STATICFILES_DIRS,但这不是必需的,对吧?

【问题讨论】:

【参考方案1】:

您无需编辑wsgi.py,自两年前发布的 WhiteNoise 4.0 以来一直不支持该功能。

您只需要编辑您的MIDDLEWARE 设置,请参阅: http://whitenoise.evans.io/en/stable/index.html#quickstart-for-django-apps

【讨论】:

好的,这很干净。但是我关于未创建 Heroku 静态文件的问题是留在这里..

以上是关于如何在 Django 中为 WhiteNoise 5.1.0 设置 wsgi.py 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何调试使用 whitenoise、gunicorn 和 heroku 服务的 django 静态文件?

Whitenoise 应该自动压缩静态文件吗?如何?

如何调试带有whitenoise,gunicorn和heroku的Django静态文件?

django/whitenoise 存储后端导致错误

gzip 在带有 Whitenoise 的 Django 中不起作用

使用 WhiteNoise 在生产模式下将 django 部署到 Elastic Beanstalk