Fan*_*e27 2 python django heroku server-error django-settings
我在我的 settings.py 文件中将 debug 设置为 False(请注意,在我将其设置为 false 之前,一切都完美无缺),当我运行git push heroku master并访问我的网站时,主页正在运行,但并非所有人都如此我的页面:在某些页面上,我收到一条错误消息Server Error (500)
这是我的settings.py代码:
DEBUG = False
ALLOWED_HOSTS = ["hacka-labs.herokuapp.com"]
Run Code Online (Sandbox Code Playgroud)
我注意到的是,我传递 id 的网址不起作用
如果你知道答案,请帮助我
我遇到了类似的问题,很难弄清楚 DEBUG 何时设置为 False。当我将它重新配置回DEBUG = True一切正常时。所以问题是
您通常不会在开发中看到此错误,因为当
DEBUG = True, ManifestStaticFilesStorage 切换到非散列网址时。 /sf/answers/3574210041/
您的问题的解决方案可能与我的不同。但是您可以通过更改 Django 项目的日志记录方法来发现问题,因此heroku logs -t -a <heroku-app>即使在DEBUG = False模式下运行时,您也可以在命令行中看到更多信息。
更改您的 Django 日志设置settings.py如下:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': ('%(asctime)s [%(process)d] [%(levelname)s] '
'pathname=%(pathname)s lineno=%(lineno)s '
'funcname=%(funcName)s %(message)s'),
'datefmt': '%Y-%m-%d %H:%M:%S'
},
'simple': {
'format': '%(levelname)s %(message)s'
}
},
'handlers': {
'null': {
'level': 'DEBUG',
'class': 'logging.NullHandler',
},
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
}
},
'loggers': {
'django': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': True,
},
'django.request': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': False,
},
}
}
Run Code Online (Sandbox Code Playgroud)
然后运行heroku logs -t -a <heroku-app>并打开之前出现 500 错误的 url,您将在日志中找到问题。希望这会帮助你。
如果缺少一些静态文件,只需settings.py按如下方式切换您的静态根STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')。运行heroku run python manage.py collectstatic -a <heroku-app>会创建 staticfiles 目录。