我知道这个问题已被问过几次了,但我无法让它发挥作用.我已经花了半天时间尝试了几十种组合,现在再次尝试它仍然无法正常工作.
在我的代码中,我记录了几个部分,比如在try-except中或从管理命令中记录一些信息.我正在做非常正常的事情,这是在几个本地安装和一些Nginx服务器上工作.
像这样的python文件:
import logging
logger = logging.getLogger(__name__)
logger.info('some important infos')
Run Code Online (Sandbox Code Playgroud)
使用以下最小的settings.py(我试过没有流指示,没有指定记录器,使用命名记录器,几乎所有可能的组合,我也尝试了更复杂的组合)
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'stream': sys.stdout
}
},
'loggers': {
'django': {
'handlers': ['console'],
'propagate': True,
'level': 'INFO',
},
'': {
'handlers': ['console'],
'level': 'INFO',
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后还简单地从shell测试 heroku run python
import logging
level = logging.INFO
handler = logging.StreamHandler()
handler.setLevel(level)
handler.setFormatter(logging.Formatter('%(levelname)s: %(message)s'))
logger = logging.getLogger('info')
logger.addHandler(handler)
logger.setLevel(level) #even if not required...
logger.info('logging test')
Run Code Online (Sandbox Code Playgroud)
最后一个可能在控制台中显示为"print"语句,但既不是在这里也不是从命令或服务器,没有任何东西永远不会出现在heroku logs …
我知道对此有很多问题,但说实话,大多数问题都没有得到解答,或者解决方案不起作用。
我有“简单”的问题。当我将 Debug 设置为 False 并将其推送到 heroku 时,我收到“服务器错误 (500)”。我读了这些主题:
当 Debug = False 时,Heroku 服务器错误 (500),whitenoise 找不到 style.css
每当 django 中的 debug=False 时,Heroku 都会给出服务器错误 (500),而当 debug=True 时则不会出现错误
https://www.reddit.com/r/djangolearning/comments/acj65x/why_am_i_getting_a_500_server_error_when/
https://teamtreehouse.com/community/heroku-bad-request-500
我尝试了他们的解决方案,但仍然不起作用。我没有测试过但应该有帮助的唯一解决方案是消除白噪声。这对我来说有点“不行”。
对于这个错误我该怎么办?
谢谢并干杯!
编辑:
这是我的日志。我试图注释掉白噪音,但没有帮助。
我正在查看我的代码,但没有任何对“favicon.ico”的引用。另外,我尝试运行collectstatic,因为我发现了一些与之相关的主题,但它对我不起作用。
首先它问我:
You have requested to collect static files at the destination
location as specified in your settings:
/app/staticfiles
Run Code Online (Sandbox Code Playgroud)
然后我得到了错误:
FileNotFoundError: [Errno 2] No such file or directory: '/app/static'
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为首先它向我确认我将这个文件夹从 static 覆盖到 staticfiles 。在我的主目录中,我有文件夹“staticfiles”。在我的应用程序文件夹中,我有文件夹“static”。关闭调试后一切正常。
2020-05-19T05:15:40.192943+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=robotbuilder.herokuapp.com request_id=eeaf4fd1-b73b-4e84-aacd-7e701d3e8932 fwd="83.26.255.146" dyno=web.1 connect=1ms service=3ms status=404 …Run Code Online (Sandbox Code Playgroud) 我一直在制作一个 django 应用程序,现在正在尝试将它部署到 heroku。但是,当我继续下去时,说Server Error (500),并且日志说:2017-05-27T21:00:14.634310+00:00 heroku[router]: at=info method=GET path="/" host=remberit.herokuapp.com request_id=065d27c6-9211-458f-9fc6-bb677d43581e fwd="86.13.204.65" dyno=web.1 connect=0ms service=151ms status=500 bytes=387 protocol=https
这是我的settings.py(至少是相关部分,但请询问您是否想要其余部分):
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_ROOT, "staticfiles")
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
import dj_database_url
DATABASES['default'] = dj_database_url.config()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
ALLOWED_HOSTS = ['*']
DEBUG = False
try:
from .local_settings import *
except ImportError:
pass
Run Code Online (Sandbox Code Playgroud)
这是我的 wsgi.py:
import os
from django.core.wsgi import get_wsgi_application
#from whitenoise.django import DjangoWhiteNoise
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', …Run Code Online (Sandbox Code Playgroud)