Jestem zdezorientowany static root
i chcę wszystko wyjaśnić.
Aby udostępniać pliki statyczne w Django, w settings.py
and urls.py
:
import os
PROJECT_DIR=os.path.dirname(__file__)
1. Bezwzględna ścieżka do katalogu, w którym powinny być gromadzone pliki statyczne
STATIC_ROOT= os.path.join(PROJECT_DIR,'static_media/')
2. Prefiks adresu URL dla plików statycznych
STATIC_URL = '/static/'
3. Dodatkowe lokalizacje dla plików statycznych
STATICFILES_DIRS = ( os.path.join(PROJECT_DIR,'static/'),)
... i w urls.py
następujących wierszach:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += patterns('', (
r'^static/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}
))
4. Używamy również python manage.py collectstatic
Pytania:
Czy ktoś mógłby mi wyjaśnić przebieg pracy: jak najlepiej to zrobić. Na razie kopiuję / wklejam powyższe fragmenty kodu do wyznaczonych lokalizacji i kontynuuję tworzenie nowych plików w katalogu statycznym i działa. W moim
settings.STATIC_ROOT
jednak wskazałem na inny katalog.Byłoby wspaniale, gdyby ktoś mógł wyjaśnić przepływ pracy dla każdego ustawienia: w jaki sposób pliki są gromadzone i zarządzane oraz jakie dobre praktyki należy stosować.
Dzięki.
if settings.DEBUG:
django nie jest zbyt dobre w obsłudze mediów statycznych, powinno to być pozostawione prawdziwemu serwerowi WWW.