Sono confuso static root
e voglio chiarire le cose.
Per servire file statici in Django, dovrebbe essere presente quanto segue in settings.py
e urls.py
:
import os
PROJECT_DIR=os.path.dirname(__file__)
1. Percorso assoluto della directory in cui raccogliere i file statici
STATIC_ROOT= os.path.join(PROJECT_DIR,'static_media/')
2. Prefisso URL per file statici
STATIC_URL = '/static/'
3. Percorsi aggiuntivi per i file statici
STATICFILES_DIRS = ( os.path.join(PROJECT_DIR,'static/'),)
... e nelle urls.py
seguenti righe:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += patterns('', (
r'^static/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}
))
4. Usiamo anche python manage.py collectstatic
Domande:
Qualcuno potrebbe spiegarmi il flusso di lavoro: come dovrebbero essere fatte le cose idealmente. A partire da ora, copio / incollo gli snippet di codice sopra nelle posizioni designate e continuo a creare nuovi file nella directory statica e funziona. Nel mio
settings.STATIC_ROOT
, invece, ho indicato una directory diversa.Sarebbe fantastico se qualcuno potesse spiegare il flusso di lavoro di ciascuna impostazione: come vengono raccolti e gestiti i file e quale sarebbe una buona pratica da seguire.
Grazie.
if settings.DEBUG:
django non è molto bravo a servire media statici, questo dovrebbe essere lasciato a un vero server web.