我遇到了类似的问题,很难弄清楚DEBUG何时设置为False。当我重新配置它时,DEBUG = True
一切再次正常。所以问题是
您通常不会在开发中看到此错误,因为当时DEBUG=True
,ManifestStaticFilesStorage会切换为非哈希网址。
您所遇到的问题的解决方案可能与我的不同。但是您可以通过更改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,
},
}
}
然后运行heroku logs -t -a <heroku-app>
并打开您之前遇到500错误的网址,您将在日志中找到问题所在。希望这会帮助你。
如果有一些静态文件丢失,只需settings.py
按照以下步骤切换您的静态根目录即可STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
。运行时heroku run python manage.pycollectstatic -a <heroku-app>
创建staticfiles目录。