2011-07-25 9 views
8

Przeczytałem o nich coś za pośrednictwem oficjalnego dokumentu i niektórych postów, ale nadal jestem zdezorientowany. O ile teraz widzę, MEDIA_ROOT jest dla użytkownika wgranych obrazów i plików oraz STATIC_ROOT dla js, css, itp. Co do MEDIA_URL, czy to do pobierania obrazów? I jest STATIC_URL do łączenia js i css?Co to jest udokumentowana definicja MEDIA_ROOT, MEDIA_URL, STATIC_ROOT, STATIC_URL i ADMIN_MEDIA_PREFIX?

Byłbym bardzo wdzięczny, gdyby przykłady podano dla każdego.

+0

Lepiej dać lepszy tytuł :( –

Odpowiedz

11

MEDIA_ROOT i STATIC_ROOT to lokalny katalog pliki znajdują się na przykład:

MEDIA_ROOT = '/home/CDBean/mydjangoproject/media/' # notice the trailing slash 
STATIC_ROOT = '/home/CDBean/mydjangoproject/static/' 

MEDIA_URL i STATIC_URL są publicznie osiągalne adresy tych folderach. Oznacza to, że po wdrożeniu projektu Django musisz poinformować serwer sieciowy, aby opublikował te foldery pod podanymi tu adresami URL.

MEDIA_URL = 'http://media.example.com/' # trailing slashes here, too 
STATIC_URL = 'http://static.example.com/' 

Następnie można korzystać z tych adresów URL (zakładając, że masz django.core.context_processors.media i django.core.context_processors.static dodane do TEMPLATE_CONTEXT_PROCESSORS krotka w settings.py) w szablonach poprzez {{MEDIA_URL}} i {{STATIC_URL}}. Dwa przykłady:

<link href="{{STATIC_URL}}css/main.css" media="screen" rel="stylesheet" type="text/css" /> 
<img src="{{MEDIA_URL}}random.jpg"/> 

Teraz, kiedy użyć czego? Zasadniczo masz rację, ale zdecydowanie polecam czytanie https://docs.djangoproject.com/en/dev/howto/static-files/.