Estoy confundido static root
y quiero aclarar las cosas.
Para servir archivos estáticos en Django, lo siguiente debe estar en settings.py
y urls.py
:
import os
PROJECT_DIR=os.path.dirname(__file__)
1. Ruta absoluta al directorio en el que se deben recopilar los archivos estáticos
STATIC_ROOT= os.path.join(PROJECT_DIR,'static_media/')
2. Prefijo URL para archivos estáticos
STATIC_URL = '/static/'
3. Ubicaciones adicionales para archivos estáticos
STATICFILES_DIRS = ( os.path.join(PROJECT_DIR,'static/'),)
... y en urls.py
las siguientes líneas:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += patterns('', (
r'^static/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}
))
4. También utilizamos python manage.py collectstatic
Preguntas:
¿Podría alguien explicarme el flujo de trabajo: cómo deberían hacerse las cosas idealmente? A partir de ahora, copio / pego los fragmentos de código anteriores en sus ubicaciones designadas y continúo creando nuevos archivos en el directorio estático y funciona. En mi
settings.STATIC_ROOT
, sin embargo, he señalado un directorio diferente.Sería genial si alguien pudiera explicar el flujo de trabajo de cada configuración: cómo se recopilan y administran los archivos, y cuál sería una buena práctica a seguir.
Gracias.
if settings.DEBUG:
django no es muy bueno para servir medios estáticos, esto debe dejarse a un servidor web real.