tutorial subir rutas imagenes archivos django static heroku

subir - static en django



Heroku-Manejo de archivos estáticos en la aplicación Django (2)

Tengo un proyecto (myapp) en heroku pero no puedo hacer que los archivos estáticos funcionen correctamente. Estaba siguiendo esta publicación en el blog .

My Procfile ve así:

web: python myapp/manage.py collectstatic --noinput; bin/gunicorn_django --workers=4 --bind=0.0.0.0:$PORT myapp/settings.py

settings.py :

... STATIC_ROOT = os.path.join(PROJECT_PATH, ''staticfiles'') STATIC_URL = ''/static/'' ADMIN_MEDIA_PREFIX = ''/static/admin/'' STATICFILES_DIRS = ( # I have the static folder inside my app and not inside the project os.path.join(PROJECT_PATH, ''cesar/static''), ) ...

Al reiniciar el uso de heroku restart esto es lo que muestra el heroku logs :

... Copying ... 114 static files copied to ''/app/myapp/staticfiles''. ...

Pero cuando hago heroku run ls -l myapp/ No puedo ver la carpeta staticfiles :

-rw------- 1 u5605 5605 0 Jan 28 16:53 __init__.py drwx------ 4 u5605 5605 4096 Jan 28 16:53 cesar -rw------- 1 u5605 5605 503 Jan 28 16:53 manage.py -rw------- 1 u5605 5605 6292 Jan 28 16:53 settings.py drwx------ 2 u5605 5605 4096 Jan 28 16:53 templates -rw------- 1 u5605 5605 257 Jan 28 16:53 urls.py -rw------- 1 u5605 5605 286 Jan 28 16:53 views.py

¿Qué estoy perdiendo o haciendo mal?


Encontré una solución. Este fue mi inicial myapp/urls.py :

from django.conf.urls.defaults import patterns, include, url from django.contrib import admin from django.conf import settings admin.autodiscover() urlpatterns = patterns('''', url(r''^$'', include(''myapp.cesar.urls'')), url(r''^admin/'', include(admin.site.urls)), )

myapp/urls.py estas líneas al final del myapp/urls.py original:

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

Ahora está funcionando bien. Espero que esto ayude a alguien más también


Probablemente deberías crear manualmente la carpeta STATIC_ROOT vacía especificada en tu configuración antes de ejecutar ''./manage.py collectstatic''.