Django 1.3 статические файлы помещаются в каталоги приложений - PullRequest
9 голосов
/ 07 апреля 2011

Я использую Django 1.3 и статические файлы в приложении сбивают с толку.Что я делал: 1) Установите

STATIC_ROOT = as path to directory 'static' in my project
STATIC_URL = '/static/'

2) Служите в моем urls.py

if settings.DEBUG:
    urlpatterns += patterns(
        '',
        url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
    )

3) Поместите файлы css и js в папку «static» в моемкаталог приложений.Итак, я получил такое дерево каталогов:

my_project/
    main_app/
        static/
            css/
                style.css
            js/
    secondary_app/
        static/
            foldername/
                file.css

4) Я добавил оба этих приложения в INSTALLED_APPS в файле settings.py.И теперь в моем шаблоне, когда я пишу, следуйте строке:

<link rel="stylesheet" href="{{ STATIC_URL }}css/style.css" type="text/css" />

Django успешно находит мой css-файл в каталоге

my_project/main_app/static/css/

и вставляет в style.css Но когда я пишу

<link rel="stylesheet" href="{{ STATIC_URL }}foldername/file.css" type="text/css" />

Джанго не подключает этот файл.

Итак, мой вопрос: что я делаю не так?Почему я не могу подключить мой CSS-файл из каталога second_app?Что мне еще рассказать об этой ситуации?

1 Ответ

11 голосов
/ 07 апреля 2011

Идея заключается в том, что вы поставляете все свои приложения со своими статическими файлами под app/static.

Как только вы развернете приложение в проекте, при запуске python manage.py collectstatic будут скопированы все статические файлы, найденные благодаря настройке STATICFILES_FINDERS (которая содержит средство поиска, которое ищет каталог static в каждом установленном приложении по умолчанию) в вашем * Каталог 1007 * будет обслуживаться через STATIC_URL

Сервер разработки обрабатывает этот шаблон STATIC_URL в режиме DEBUG, но это интересное чтение: Обслуживание статических файлов в производстве

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...