Django的ALLOWED_HOSTS设置,如果设置为与浏览器连接的主机不同,则只会导致400,而不会显示问题。
DEBUG = False
ALLOWED_HOSTS = ['example.com']
如果您通过直接连接到IP而不是通过example.com来点击django,那么您将得到一个简单的400页。
这只发生在DEBUG = FALSE
上(如文档所述),但它通过wsgi和manage.py发生。
这比我承认要调试的时间要长得多。
调试输出在哪里可以让我免于这个模糊的错误?不应该至少manage.py的输出给出提示吗?
该页面只显示400 Bad Request
,日志为:
1.2.3.4 - - [23/Oct/2014 11:33:22] "GET / HTTP/1.1" 400 26
答案 0 :(得分:2)
是的,Django错误日志。
[ERROR] [2014-10-23 12:46:06,073] [base 6808 140062533326784] [Invalid HTTP_HOST header: 'whatver.host'.You may need to add u'whatever_host' to ALLOWED_HOSTS.]
这是一个示例日志配置。如果你希望调试任何东西,你应该记录Djanogo错误。
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'error_file': {
'level': 'ERROR',
'filename': os.path.join(LOG_PATH, 'error.log'),
'class':'logging.handlers.RotatingFileHandler',
'maxBytes': 1 * 1024 * 1024,
'backupCount': 2
}
},
'loggers': {
'django': {
'handlers': ['error_file'],
'level': 'ERROR',
'propagate': True
}
}
}