Sé que hay muchas preguntas al respecto, pero para ser honesto, la mayoría de ellas quedan sin respuesta o las soluciones no funcionan.
Tengo un problema "sencillo". Cuando configuro Debug en False y lo empujo a heroku, aparece "Error del servidor (500)". Leo esos temas:
Error del servidor Heroku (500) cuando Debug = False, whitenoise no pudo encontrar style.css
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
Y probé sus soluciones pero todavía no funciona. La única solución que no probé y que se supone que ayuda es deshacerse del ruido blanco. Este es un poco "no ir" para mí.
¿Qué puedo hacer con este error?
¡Gracias y Saludos!
EDITAR:
Aquí está mi registro. Traté de comentar el ruido blanco pero no ayudó.
Estaba buscando en mi código pero no tengo ninguna referencia a "favicon.ico". Además, traté de ejecutar collectstatic porque encontré algunos temas relacionados con eso, pero no funcionó para mí.
Primero me preguntó:
You have requested to collect static files at the destination location as specified in your settings: /app/staticfilesY luego recibí un error:
FileNotFoundError: [Errno 2] No such file or directory: '/app/static'Lo cual es extraño, porque primero me confirmó que sobreescribí esta carpeta de archivos estáticos a estáticos. En mi directorio principal tengo la carpeta "archivos estáticos". En mi carpeta de aplicaciones tengo una carpeta "estática". Y con la depuración desactivada, todo funciona.
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 bytes=388 protocol=http 2020-05-19T05:15:39.991705+00:00 app[web.1]: [2020-05-19 05:15:39 +0000] [11] [ERROR] Error handling request / 2020-05-19T05:15:39.991725+00:00 app[web.1]: Traceback (most recent call last): 2020-05-19T05:15:39.991726+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 134, in handle 2020-05-19T05:15:39.991734+00:00 app[web.1]: self.handle_request(listener, req, client, addr) 2020-05-19T05:15:39.991734+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 175, in handle_request 2020-05-19T05:15:39.991735+00:00 app[web.1]: respiter = self.wsgi(environ, resp.start_response) 2020-05-19T05:15:39.991735+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/wsgi.py", line 133, in __call__ 2020-05-19T05:15:39.991735+00:00 app[web.1]: response = self.get_response(request) 2020-05-19T05:15:39.991736+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py", line 75, in get_response 2020-05-19T05:15:39.991736+00:00 app[web.1]: response = self._middleware_chain(request) 2020-05-19T05:15:39.991736+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner 2020-05-19T05:15:39.991737+00:00 app[web.1]: response = response_for_exception(request, exc) 2020-05-19T05:15:39.991739+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 90, in response_for_exception 2020-05-19T05:15:39.991740+00:00 app[web.1]: response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) 2020-05-19T05:15:39.991741+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner 2020-05-19T05:15:39.991741+00:00 app[web.1]: response = get_response(request) 2020-05-19T05:15:39.991741+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/whitenoise/middleware.py", line 58, in __call__ 2020-05-19T05:15:39.991742+00:00 app[web.1]: response = self.get_response(request) 2020-05-19T05:15:39.991746+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner 2020-05-19T05:15:39.991747+00:00 app[web.1]: response = response_for_exception(request, exc) 2020-05-19T05:15:39.991747+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 90, in response_for_exception 2020-05-19T05:15:39.991747+00:00 app[web.1]: response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) 2020-05-19T05:15:39.991747+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner 2020-05-19T05:15:39.991748+00:00 app[web.1]: response = get_response(request) 2020-05-19T05:15:39.991748+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/deprecation.py", line 94, in __call__ 2020-05-19T05:15:39.991748+00:00 app[web.1]: response = response or self.get_response(request) 2020-05-19T05:15:39.991748+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner 2020-05-19T05:15:39.991749+00:00 app[web.1]: response = response_for_exception(request, exc) 2020-05-19T05:15:39.991749+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 90, in response_for_exception 2020-05-19T05:15:39.991749+00:00 app[web.1]: response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) 2020-05-19T05:15:39.991750+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner 2020-05-19T05:15:39.991750+00:00 app[web.1]: response = get_response(request) 2020-05-19T05:15:39.991750+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/deprecation.py", line 94, in __call__ 2020-05-19T05:15:39.991750+00:00 app[web.1]: response = response or self.get_response(request) 2020-05-19T05:15:39.991751+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner 2020-05-19T05:15:39.991751+00:00 app[web.1]: response = response_for_exception(request, exc) 2020-05-19T05:15:39.991751+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 90, in response_for_exception 2020-05-19T05:15:39.991752+00:00 app[web.1]: response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) 2020-05-19T05:15:39.991752+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner 2020-05-19T05:15:39.991752+00:00 app[web.1]: response = get_response(request) 2020-05-19T05:15:39.991752+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/deprecation.py", line 94, in __call__ 2020-05-19T05:15:39.991753+00:00 app[web.1]: response = response or self.get_response(request) 2020-05-19T05:15:39.991753+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner 2020-05-19T05:15:39.991753+00:00 app[web.1]: response = response_for_exception(request, exc) 2020-05-19T05:15:39.991753+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 90, in response_for_exception 2020-05-19T05:15:39.991754+00:00 app[web.1]: response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) 2020-05-19T05:15:39.991754+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner 2020-05-19T05:15:39.991755+00:00 app[web.1]: response = get_response(request) 2020-05-19T05:15:39.991763+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/deprecation.py", line 94, in __call__ 2020-05-19T05:15:39.991763+00:00 app[web.1]: response = response or self.get_response(request) 2020-05-19T05:15:39.991763+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner 2020-05-19T05:15:39.991764+00:00 app[web.1]: response = response_for_exception(request, exc) 2020-05-19T05:15:39.991764+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 90, in response_for_exception 2020-05-19T05:15:39.991764+00:00 app[web.1]: response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) 2020-05-19T05:15:39.991764+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner 2020-05-19T05:15:39.991765+00:00 app[web.1]: response = get_response(request) 2020-05-19T05:15:39.991765+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/deprecation.py", line 94, in __call__ 2020-05-19T05:15:39.991765+00:00 app[web.1]: response = response or self.get_response(request) 2020-05-19T05:15:39.991765+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner 2020-05-19T05:15:39.991766+00:00 app[web.1]: response = response_for_exception(request, exc) 2020-05-19T05:15:39.991766+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 90, in response_for_exception 2020-05-19T05:15:39.991766+00:00 app[web.1]: response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) 2020-05-19T05:15:39.991766+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner 2020-05-19T05:15:39.991767+00:00 app[web.1]: response = get_response(request) 2020-05-19T05:15:39.991767+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/deprecation.py", line 94, in __call__ 2020-05-19T05:15:39.991767+00:00 app[web.1]: response = response or self.get_response(request) 2020-05-19T05:15:39.991767+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner 2020-05-19T05:15:39.991768+00:00 app[web.1]: response = response_for_exception(request, exc) 2020-05-19T05:15:39.991768+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 90, in response_for_exception 2020-05-19T05:15:39.991768+00:00 app[web.1]: response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) 2020-05-19T05:15:39.991768+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner 2020-05-19T05:15:39.991769+00:00 app[web.1]: response = get_response(request) 2020-05-19T05:15:39.991769+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/deprecation.py", line 94, in __call__ 2020-05-19T05:15:39.991769+00:00 app[web.1]: response = response or self.get_response(request) 2020-05-19T05:15:39.991769+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner 2020-05-19T05:15:39.991770+00:00 app[web.1]: response = response_for_exception(request, exc) 2020-05-19T05:15:39.991770+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 90, in response_for_exception 2020-05-19T05:15:39.991770+00:00 app[web.1]: response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) 2020-05-19T05:15:39.991771+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner 2020-05-19T05:15:39.991771+00:00 app[web.1]: response = get_response(request) 2020-05-19T05:15:39.991771+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/whitenoise/middleware.py", line 58, in __call__ 2020-05-19T05:15:39.991771+00:00 app[web.1]: response = self.get_response(request) 2020-05-19T05:15:39.991772+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 36, in inner 2020-05-19T05:15:39.991772+00:00 app[web.1]: response = response_for_exception(request, exc) 2020-05-19T05:15:39.991772+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 90, in response_for_exception 2020-05-19T05:15:39.991772+00:00 app[web.1]: response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) 2020-05-19T05:15:39.991780+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner 2020-05-19T05:15:39.991781+00:00 app[web.1]: response = get_response(request) 2020-05-19T05:15:39.991781+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response 2020-05-19T05:15:39.991782+00:00 app[web.1]: response = self.process_exception_by_middleware(e, request) 2020-05-19T05:15:39.991782+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response 2020-05-19T05:15:39.991782+00:00 app[web.1]: response = wrapped_callback(request, *callback_args, **callback_kwargs) 2020-05-19T05:15:39.991783+00:00 app[web.1]: File "/app/builder/views.py", line 8, in home 2020-05-19T05:15:39.991783+00:00 app[web.1]: return render(request, "builder/home.html") 2020-05-19T05:15:39.991783+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/shortcuts.py", line 19, in render 2020-05-19T05:15:39.991784+00:00 app[web.1]: content = loader.render_to_string(template_name, context, request, using=using) 2020-05-19T05:15:39.991790+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/template/loader.py", line 62, in render_to_string 2020-05-19T05:15:39.991790+00:00 app[web.1]: return template.render(context, request) 2020-05-19T05:15:39.991791+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/template/backends/django.py", line 61, in render 2020-05-19T05:15:39.991791+00:00 app[web.1]: return self.template.render(context) 2020-05-19T05:15:39.991791+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/template/base.py", line 171, in render 2020-05-19T05:15:39.991792+00:00 app[web.1]: return self._render(context) 2020-05-19T05:15:39.991792+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/template/base.py", line 163, in _render 2020-05-19T05:15:39.991792+00:00 app[web.1]: return self.nodelist.render(context) 2020-05-19T05:15:39.991792+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/template/base.py", line 936, in render 2020-05-19T05:15:39.991793+00:00 app[web.1]: bit = node.render_annotated(context) 2020-05-19T05:15:39.991793+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/template/base.py", line 903, in render_annotated 2020-05-19T05:15:39.991798+00:00 app[web.1]: return self.render(context) 2020-05-19T05:15:39.991798+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/template/loader_tags.py", line 150, in render 2020-05-19T05:15:39.991798+00:00 app[web.1]: return compiled_parent._render(context) 2020-05-19T05:15:39.991799+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/template/base.py", line 163, in _render 2020-05-19T05:15:39.991799+00:00 app[web.1]: return self.nodelist.render(context) 2020-05-19T05:15:39.991799+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/template/base.py", line 936, in render 2020-05-19T05:15:39.991799+00:00 app[web.1]: bit = node.render_annotated(context) 2020-05-19T05:15:39.991800+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/template/base.py", line 903, in render_annotated 2020-05-19T05:15:39.991800+00:00 app[web.1]: return self.render(context) 2020-05-19T05:15:39.991800+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/templatetags/static.py", line 106, in render 2020-05-19T05:15:39.991800+00:00 app[web.1]: url = self.url(context) 2020-05-19T05:15:39.991804+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/templatetags/static.py", line 103, in url 2020-05-19T05:15:39.991804+00:00 app[web.1]: return self.handle_simple(path) 2020-05-19T05:15:39.991804+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/templatetags/static.py", line 118, in handle_simple 2020-05-19T05:15:39.991805+00:00 app[web.1]: return staticfiles_storage.url(path) 2020-05-19T05:15:39.991805+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/staticfiles/storage.py", line 153, in url 2020-05-19T05:15:39.991805+00:00 app[web.1]: return self._url(self.stored_name, name, force) 2020-05-19T05:15:39.991806+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/staticfiles/storage.py", line 132, in _url 2020-05-19T05:15:39.991806+00:00 app[web.1]: hashed_name = hashed_name_func(*args) 2020-05-19T05:15:39.991806+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/staticfiles/storage.py", line 423, in stored_name 2020-05-19T05:15:39.991806+00:00 app[web.1]: raise ValueError("Missing staticfiles manifest entry for '%s'" % clean_name) 2020-05-19T05:15:39.991807+00:00 app[web.1]: ValueError: Missing staticfiles manifest entry for 'builder/logo.png' 2020-05-19T05:15:39.992027+00:00 app[web.1]: 10.95.191.28 - - [19/May/2020:05:15:39 +0000] "GET / HTTP/1.1" 500 0 "-" "-" 2020-05-19T05:15:40.192825+00:00 app[web.1]: 10.95.191.28 - - [19/May/2020:05:15:40 +0000] "GET /favicon.ico HTTP/1.1" 404 179 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0" 2020-05-19T05:15:39.996509+00:00 heroku[router]: at=info method=GET path="/" host=robotbuilder.herokuapp.com request_id=de877e93-558a-40ab-bf11-b6de261cb707 fwd="83.26.255.146" dyno=web.1 connect=1ms service=57ms status=500 bytes=244 protocol=httpEDIT2:
import os import django_heroku from decouple import config import dj_database_url # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = config('SECRET_KEY') # SECURITY WARNING: don't run with debug turned on in production! DEBUG = False ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'builder', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', # Simplified static file serving. # https://warehouse.python.org/project/whitenoise/ 'whitenoise.middleware.WhiteNoiseMiddleware', ] ROOT_URLCONF = 'robot_builder.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'robot_builder.wsgi.application' # Database # https://docs.djangoproject.com/en/3.0/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', } } # If you want to work with your remote database on your local machine, you need to paste link from heroku lower: # DATABASES['default'] = dj_database_url.config(default='postgres://qkwlkrkahynyik:21a1420ab5820795f3a0c736ebb607419fc7a111f093924dcfc4567dfd906b9f@ec2-54-147-209-121.compute-1.amazonaws.com:5432/d2v01dp40p4er2') db_from_env = dj_database_url.config(conn_max_age=600) DATABASES['default'].update(db_from_env) # Password validation # https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization # https://docs.djangoproject.com/en/3.0/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.0/howto/static-files/ STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') STATIC_TMP = os.path.join(BASE_DIR, 'static') STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), ) MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') # Simplified static file serving. # https://warehouse.python.org/project/whitenoise/ STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' # Debugging in heroku live 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': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'verbose' } }, 'loggers': { 'testlogger': { 'handlers': ['console'], 'level': 'INFO', } } } DEBUG_PROPAGATE_EXCEPTIONS = True COMPRESS_ENABLED = os.environ.get('COMPRESS_ENABLED', False) # Activate Django-Heroku. django_heroku.settings(locals())Mi estructura de carpetas:
robot_builder > builder >> migrations >> static >>> css >>> builder >>>> my images, including logo.png used as favicon >> templates >> models.py etc. > media > robot_builder >> settings.py etc. > staticfilesDepure su aplicación django mediante registros escribiendo esto, heroku logs --tail -a your_herokuapp_name o https://dashboard.heroku.com/apps/your_herokuapp_name/logs .
Antes de eso, agregue esto en su settings.py :
# Debugging in heroku live 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': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'verbose' } }, 'loggers': { 'testlogger': { 'handlers': ['console'], 'level': 'INFO', } } } DEBUG_PROPAGATE_EXCEPTIONS = True COMPRESS_ENABLED = os.environ.get('COMPRESS_ENABLED', False) Esto le mostrará un error con debug=False en los registros de heroku.
Creo que lo tengo. La solución está funcionando. Pero creo que también es muy raro. Agradecería si alguien pudiera comentar por qué es así.
Puede dejar el ruido blanco, puede hacer un poco de limpieza con los directorios de archivos estáticos. Haz que se vea así:
STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), ) MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'Pero no es necesario, creo. (También es mejor mantener su carpeta "estática" en su carpeta de proyecto principal).
Pero la gran solución es (trabajando en django 3):
tienes que correr
python manage.py collectstatic¡Localmente! Y luego enviarlo a heroku. Y luego, todo funciona con Debug configurado en False. Traté de mantener collectstatic solo con el archivo .keep. Traté de confirmar solo .json con la esperanza de que se vuelva a llenar con nuevos archivos recopilados. Pero no. Funciona solo si ejecuto collectstatic localmente y luego confirmo TODO en heroku.
Si alguien tiene más conocimiento sobre este tema y me lo puede explicar se lo agradecería mucho.
Mientras tanto, espero que alguien más también se beneficie de esta solución.
Encontré la respuesta a esta pregunta: ValueError: Falta la entrada de manifiesto de archivos estáticos para 'favicon.ico' . Muchas gracias emazzotta, además no tuve que deshacerme del whitenoise y está funcionando en django3.
ValueError: Missing staticfiles manifest entry for 'builder/logo.png'
Parece que en builder/staticfiles(/builder) , se hace referencia a logo.png pero no existe. Puede ser que esté tratando de llegar a archivos static en lugar de a staticfiles , en cuyo caso parece ser un error interno que se corregiría en una versión posterior de Django. Ya que está usando Django 2, probablemente debería actualizar a Django 3 si agregar logo.png no funciona.
TL;DR: Agregue logo.png a builder/staticfiles(/builder) o actualice Django.