Je suis confus static root
et je veux clarifier les choses.
Pour servir des fichiers statiques dans Django, les éléments suivants doivent être dans settings.py
et urls.py
:
import os
PROJECT_DIR=os.path.dirname(__file__)
1. Chemin absolu vers le répertoire dans lequel les fichiers statiques doivent être collectés
STATIC_ROOT= os.path.join(PROJECT_DIR,'static_media/')
2. Préfixe d'URL pour les fichiers statiques
STATIC_URL = '/static/'
3. Emplacements supplémentaires pour les fichiers statiques
STATICFILES_DIRS = ( os.path.join(PROJECT_DIR,'static/'),)
... et dans urls.py
les lignes suivantes:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += patterns('', (
r'^static/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}
))
4. Nous utilisons également python manage.py collectstatic
Des questions:
Quelqu'un pourrait-il m'expliquer le flux de travail: comment les choses devraient-elles idéalement être faites? À partir de maintenant, je copie / colle les extraits de code ci-dessus dans leurs emplacements désignés et continue à créer de nouveaux fichiers dans le répertoire statique et cela fonctionne. Dans mon
settings.STATIC_ROOT
, cependant, j'ai indiqué un répertoire différent.Ce serait formidable si quelqu'un pouvait expliquer le flux de travail de chaque paramètre: comment les fichiers sont collectés et gérés, et quelle serait une bonne pratique à suivre.
Merci.
if settings.DEBUG:
django n'est pas très bon pour servir des médias statiques, cela devrait être laissé à un vrai serveur Web.