我不明白为什么我在运行 Heroku run python manage.py runserver
时遇到错误
我尝试更改文件夹名称,并尝试在 MIDDLEWARE
中删除和添加 WhiteNoise
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
# 'django.middleware.security.SecurityMiddleware',
# 'whitenoise.middleware.WhiteNoiseMiddleware',
]
数据库设置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
django_heroku.settings(locals())
wsgi.py
import os
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ss.settings')
application = get_wsgi_application()
application = DjangoWhiteNoise(application)
至少服务器应该运行,这样我才能看到 Heroku 有什么问题。
最佳答案
根据 documentation
,中间件配置应该是这样的:
MIDDLEWARE = [
<b>'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',</b>
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
你也可以从 wsgi 文件中删除与 whitenoise 相关的行:
import os
from django.core.wsgi import get_wsgi_application
# from whitenoise.django import DjangoWhiteNoise
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ss.settings')
application = get_wsgi_application()
# application = DjangoWhiteNoise(application)
因为在 whitenoise >= 4.0
, 你不需要改变 wsgi 文件。
关于django.core.exceptions.ImproperlyConfigured : WSGI application '{project_name}.wsgi.application' could not be loaded; Error importing module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56621436/