Куда поместить зависимые файлы шаблона Django?

Мои шаблоны Django используют множество связанных вещей: изображения, таблицы стилей и т. д.

Куда я должен поместить эти файлы или как я должен ссылаться на них в самом шаблоне?

Пока я использую сервер разработки.

Я знаю, что это очень распространенная вещь, но я не могу понять это.


person shinjin    schedule 12.12.2009    source источник


Ответы (3)


Я помещаю их в папку с именем static, которая находится в папке верхнего уровня веб-проекта.

Пример:

/static/img/
/static/js/
/static/css/
/templates/
urls.py
settings.py

Затем у меня есть следующее правило в моем файле urls.py:

(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),

Мой settings.py содержит:

MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'static').replace('\\', '/')
ADMIN_MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'static/admin').replace('\\', '/')
person Brian R. Bondy    schedule 12.12.2009
comment
Ааа! Это было немного сложно. Я пытался назвать свою папку media, но, конечно, это конфликтовало с медиа-папкой администратора. - person shinjin; 12.12.2009
comment
shinjin: Так что укажите ADMIN_MEDIA_PREFIX в настройках как что-то еще, скажем, /admin-media/ - person lprsd; 12.12.2009

Возможно, вы можете прочитать документ http://docs.djangoproject.com/en/dev/howto/static-files/#howto-static-files

person diegueus9    schedule 12.12.2009

Мы помещаем наши в /media. Все, что конкретно завязано на верстке сайтов, дополнительно обособляется. Конечно, ни один из этих статических материалов не обслуживается Django на рабочем сайте. Часто они даже не находятся на одном физическом сервере.

/media
    /images - this is for content-specific images
    /video - these next 2 are normally symlinks to a /big_content folder ...
    /audio - so that they aren't included in our mercurial repository.
    /layout - everything that is tied to the basic templates.
        /css
        /js
        /images
person Peter Rowell    schedule 12.12.2009