subir imagenes guia gratis archivo app python django heroku django-staticfiles

python - imagenes - Archivos estáticos de Heroku que no se cargan, Django



subir archivo a heroku (5)

Estoy tratando de llevar mi proyecto de Django a Heroku, pero no está cargando los archivos estáticos.

Usé esto para configurar las cosas, todo está bien, pero no puedo solucionar el problema con los archivos estáticos.

Mi estructura de directorio es así

help_the_needy help_the_needy __init__.py settings.py urls.py views.py wsgi.py manage.py Procfile requirements.txt static css font-awesome fonts img js templates base.html display_list2.html index.html

Aquí está el código completo (todos los archivos).

Este es mi settings.py.

Intenté muchas cosas para arreglar esto, pero nada parece funcionar.

Cuando lo presiono, copia los archivos estáticos pero no los está cargando.

¿Puede alguien señalarme mi error? ¿Dónde está mal?


He estado lidiando con el mismo problema también. Y aquí están las 2 cosas que cambié en mi código.

(Estoy usando Django 1.7)

1) settings.py

Agrego estas líneas a los archivos de configuración

BASE_DIR = os.path.dirname(os.path.dirname(__file__)) STATIC_ROOT = os.path.join(BASE_DIR, ''staticfiles'') STATICFILES_STORAGE = ''whitenoise.django.GzipManifestStaticFilesStorage'' TEMPLATE_DIRS = ( os.path.join(BASE_DIR, ''templates''), # Add to this list all the locations containing your static files )

STATIC_ROOT: esto le dice a Django dónde (a) poner los archivos estáticos cuando ejecuta python manage.py collectstatic y (b) encontrar los archivos estáticos cuando ejecuta la aplicación

TEMPLATE_DIRS: esto le dice a Django dónde buscar sus archivos estáticos cuando busca archivos estáticos cuando ejecuta python manage.py collectstatic

2) wsgi.py

Originalmente mi archivo era:

import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxxx.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application()

Y lo cambié a:

import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxxx.settings") from django.core.wsgi import get_wsgi_application from whitenoise.django import DjangoWhiteNoise application = get_wsgi_application() application = DjangoWhiteNoise(application)

Lea aquí para obtener más información sobre whitenoise: https://devcenter.heroku.com/articles/django-assets#whitenoise

Además, recuerde instalar whitenoise: pip install whitenoise==2.0.6

Antes de implementar el proyecto, ejecute: python manage.py collectstatic

Esto creará una carpeta indicada por STATIC_ROOT (declarada en su settings.py), que contiene todos sus archivos estáticos.


Parece que django no sabe dónde está tu static_root. Esta carpeta se autogenera cuando manage.py collectstatic . Asegúrese de que las carpetas static y las templates estén dentro de su aplicación django. No creaste una aplicación django para poner estas carpetas. Has creado un proyecto django. El siguiente paso es crear una aplicación django con algo así como python manage.py startapp polls

# Absolute filesystem path to the Django project directory: DJANGO_ROOT = dirname(dirname(abspath(__file__))) # Absolute filesystem path to the top-level project folder: SITE_ROOT = dirname(DJANGO_ROOT) STATIC_URL = ''/static/'' STATIC_ROOT = normpath(join(SITE_ROOT, ''static_root''))


Su archivo urls.py carece de la configuración para administrar y enrutar solicitudes de recursos estáticos.

para proporcionar acceso a recursos estáticos, debe agregarlos a los urlpatterns de urls.py :

urlpatterns += patterns('''', (r''^static/(?P<path>.*)$'', ''django.views.static.serve'', {''document_root'': settings.STATIC_ROOT}), )


Su configuración de STATICFILES_DIRS es incorrecta. Debería estar apuntando a la ubicación real del directorio "estático" que contiene los archivos:

STATICFILES_DIRS = ( os.path.join(BASE_DIR, ''static''), )