Soy nuevo en heroku y probé una aplicación django simple sin CSS.Django heroku dir estático
Pero me acaba de agregar un archivo css en mi aplicación y cuando hago esto:
git push heroku master
La colección de archivos estáticos falla:
[...]
-----> Collecting static files
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
output = self.handle(*args, **options)
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
return self.handle_noargs(**options)
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 163, in handle_noargs
collected = self.collect()
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 104, in collect
for path, storage in finder.list(self.ignore_patterns):
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/contrib/staticfiles/finders.py", line 105, in list
for path in utils.get_files(storage, ignore_patterns):
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/contrib/staticfiles/utils.py", line 25, in get_files
directories, files = storage.listdir(location)
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/core/files/storage.py", line 235, in listdir
for entry in os.listdir(path):
OSError: [Errno 2] No such file or directory: '/home/kevin/web/django/appheroku/blogapp/static'
! Heroku push rejected, failed to compile Python/django app
To [email protected]:[...]
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:[...]'
Aquí es mi settings.py:
[...]
STATIC_ROOT = '/home/kevin/web/django/appheroku/staticfiles'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
'/home/kevin/web/django/appheroku/blogapp/static',
)
[...]
Las urls.py:
[...]
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
Procfile:
web: python appheroku/manage.py collectstatic --noinput; bin/gunicorn_django --workers=4 --bind=0.0.0.0:$PORT appheroku/monblog/settings.py
Parece incluso el '/ home/Kevin/web/django/appheroku/blogapp/estática' existe el directorio, no se detecta y no puedo entender por qué. :(
por favor me ayude ^^
EDIT:
Ahora mi settings.py se parece a esto:
import os
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
PROJECT_DIR = os.path.join(PROJECT_ROOT,'../blogapp')
[...]
STATIC_ROOT = os.path.join(PROJECT_ROOT,'staticfiles/')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(PROJECT_DIR,'static/'),
)
[...]
Y ahora la etapa de recogida de archivo estático parece funcionar bien:
-----> Collecting static files
74 static files copied.
Hubo otro problema: en mi archivo, 'appherok u/manage.py ',' bin/gunicorn_django 'y' appheroku/monblog/settings.py 'no se encontraron. lo arreglé y ahora mi procfile se ve así:
web: python manage.py collectstatic --noinput; gunicorn_django --workers=4 --bind=0.0.0.0:$PORT monblog.settings
La aplicación no se bloquea más, pero todavía no hay css. Aquí está el registro:
'2012-05-31T17:35:16+00:00 heroku[router]: GET xxxx-xxxx-number.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=85ms status=200 bytes=1054
2012-05-31T17:35:17+00:00 heroku[router]: GET xxxx-xxxx-number.herokuapp.com/static/css/style.css dyno=web.1 queue=0 wait=0ms service=5ms status=404 bytes=2088
2012-05-31T17:35:17+00:00 heroku[router]: GET xxxx-xxxx-number.herokuapp.com/static/js/jquery-1.7.2.min.js dyno=web.1 queue=0 wait=0ms service=5ms status=404 bytes=2115'
Edit3:
Sí! funciona ^^ El problema estaba en mi urls.py. Escribí:
[...]
if not settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
en lugar de
[...]
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
El error fue no en mi mensaje .. Sí, fue muy difícil para que me ayude. (Lo siento) Me siento tan estúpido ^^ '
Ahora uso este enfoque con algunas modificaciones como se explica en mi edición. (porque mi dir estático ('static /') está dentro de mi aplicación dir ('blogapp /')). Resuelve mi problema (incluso ahora estoy con otro -_-) – heathen90
¿'blogapp /' está en el directorio principal de este archivo de configuración? Parece más probable que 'blogapp,' esté en el mismo directorio que el archivo de configuración, lo que significa que debes unirte 'blogapp /' en lugar de '../ blogapp'. –
appheroku/contiene el directorio monblog /, el directorio blogapp/y el directorio staticfiles. El directorio blogapp/contiene el archivo models.py, el archivo views.py, el admin.py, .. (etc) y el static/dir. El directorio monblog contiene el settings.py, el urls.py, etc ... – heathen90