我正在尝试在Heroku上部署Django Webapp。每次尝试部署时,我都面临着同样的错误。
ImportError: 您的WhiteNoise配置与WhiteNoise v4.0不兼容 可以按照以下升级说明进行修复: http://whitenoise.evans.io/en/stable/changelog.html#v4-0 !运行'$ python manage.py collectstatic --noinput'时出错。 有关详细信息,请参见上面的回溯。 您可能需要更新应用程序代码来解决此错误。 或者,您可以为此应用程序禁用collectstatic: $ heroku config:set DISABLE_COLLECTSTATIC = 1 https://devcenter.heroku.com/articles/django-assets !推送被拒绝,无法编译Python应用。 !推送失败
我访问了该链接以按照文档的建议进行更改。它要求我从wsgi.py文件中删除所有提及,并且必须将其添加到settings.py中的中间件并更改静态存储。
#settings.py
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
.
.
.
.
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
我不确定是什么导致了此错误。将应用Whitenoise更新,并且还具有静态文件。
该项目像本地服务器上的超级按钮一样工作,但是我只是无法部署它。 预先感谢!
答案 0 :(得分:1)
在wsgi.py中使用
from whitenoise import WhiteNoise
代替
from whitenoise.django import DjangoWhiteNoise
答案 1 :(得分:0)
{{ number_format(($subtotal,2) }}
{{ number_format(($subtotalquant,2) }}
别名现已被删除。相反,您应该使用正确的导入路径:
whitenoise.django.GzipManifestStaticFilesStorage
答案 2 :(得分:0)
如果将DEBUG设置为TRUE,则可能会遇到此错误。
请确保您获得了用于制作的以下设置:DEBUG = FALSE
答案 3 :(得分:0)
我基本上按照本页上的说明操作到fixe it。
Django的WSGI集成选项(涉及编辑wsgi.py)已被删除。相反,您应该将WhiteNoise添加到settings.py的中间件列表中,并从wsgi.py中删除对WhiteNoise的任何引用。
答案 4 :(得分:0)
显然从 WhiteNoise 4.0 版开始,一些设置选项已更改。 WSGI 与 django 的集成已被删除,其中包括编辑 wsgi.py 文件;所以你应该删除对 wsgi.py 文件的任何引用,并将 WhiteNoise 添加到 settings.py 文件中的中间件列表中。 http://whitenoise.evans.io/en/stable/changelog.html#v4-0
WhiteNoise 中间件应该直接放在 Django SecurityMiddleware 之下,并且高于所有其他中间件 http://whitenoise.evans.io/en/stable/django.html#:~:text=Enable%20WhiteNoise,middleware。
此外,“whitenoise.django.GzipManifestStaticFilesStorage”别名已更改为 “whitenoise.storage.CompressedManifestStaticFilesStorage”再次出现在您的settings.py文件中,即 STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'