Ahoj,
Najlepsie ak si das do settings.py:
import os
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media')
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATICFILES_DIRS = (os.path.join(PROJECT_ROOT, 'project_static_files'), )
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.contrib.messages.context_processors.messages",
"django.core.context_processors.media",
"django.core.context_processors.request",
)
Nasledne si vytvot v project roote (v rovnakom adresari ako mas appky)
adresare media, static a project_static_files.
* media - media subory uploadnute aplikaciou
* static - tu sa zbieraju staticke subory (napriklad grafika, ktora je
sucastou dizajnu stranky) z adresara static zo vsetkych aplikacii
* project_static_files - sem davam staticke subory, ktore sa pouzivaju na
celom webe, teda nie su specificke len pre urcitu aplikaciu
A takto nejako moze vyzerat zakladna sablona:
<!DOCTYPE html>
<html>
<head>
...
<link rel="stylesheet" href="{{ STATIC_URL }}css/reset.css"
type="text/css">
{% block additional_styles %}{% endblock additional_styles %}
...
</head>
<body>
{% block body %}{% endblock body %}
</body>
</html>
K statickym suborom sa nasledne dostanes cez {{ STATIC_URL }}, ktoru
naplnuje django.core.context_processors.static context processor a k media
suborom cez {{ MEDIA_URL }} (django.core.context_processors.media
processor).
Ak ti bezi django dev server, tak nemusis uz nic viacej riesit, django
server staticky obsah automaticky naserviruje, ale ak pouzijes nejaky
realny webserver, treba zavolat:
../manage.py collectstatic
To sposobi to, ze zo vsetkych aplikacii, ktore mas v INSTALLED_APPS
nakopiruje do static adresara obsah static adresara kazdej takejto
aplikacie. Webserver potom pre /static/ nasmerujes prave do tohto adresara
(aj media musis webserveru oznamit, kde ich najde).
Na prvy pohlad to asi vyzera zlozito, ale netreba sa toho bat, je to dobre
navrhnute a velmi flexibilne.
--
S pozdravom/Regards,
Martin Tiršel