Как использовать CSS в Django?

Я создаю свое приложение с помощью Django, и мне интересно, как я могу заставить Django использовать мой файл CSS? Какие настройки мне нужно сделать, чтобы Django увидел файл css?

NB: на локальной машине

6 ответов


Если вы используете сервер разработки следуйте руководство проекта django по управлению статическими файлами чтобы настроить URL-адрес, а затем ссылаться на медиафайлы в шаблоне - скажем, изображение внутри папки изображений из /site_media/images/foo.gif.


в более общем плане вы спрашиваете, как обслуживать статический файл из Django. Если вы работаете под Apache, вы должны прочитатьhttp://docs.djangoproject.com/en/dev/howto/deployment/modpython/

Если вы используете сервер разработки (скажем, на своем ноутбуке), прочитайтеhttp://docs.djangoproject.com/en/dev/howto/static-files/

обратите внимание на большой, жир отказ от ответственности относительно разработки Django сервер:

  • использование этого сервера неэффективно и небезопасно.
  • не используйте это в производственной настройке.
  • используйте это только для разработки.

это вызвало у меня проблемы тоже на некоторое время (404 не найдены ошибки). Недостающий бит для меня состоял в редактировании STATICFILES_DIRS Кортеж в settings.py чтобы дать мне это:

STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(os.path.dirname(__file__),'media').replace('\','/'),
)

это затем подобрал мои файлы CSS в папке под названием "Медиа", которая была на верхнем уровне моего проекта django.

у меня тоже было:

MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'

(убедитесь, что у вас есть ведущий / выше STATIC_URL)

конечно, как сказано выше, вам нужно иметь файл CSS правильно включено из ваших html-файлов. У меня было:

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

какие настройки мне нужно сделать, чтобы Django увидел файл css?

нет.

убедитесь, что ваш шаблон включает файл CSS (как это делает стандартный HTML) и поместите файл CSS на медиа-сервер.

чтобы уточнить: с Django настоятельно рекомендуется, чтобы вы обслуживали все свои носители (все, что не является динамическим html) из другого экземпляра сервера. Как вы реализуете это полностью зависит от вас, но большинство людей создают подобласть.


официальные документы django мне не помогли. Надеюсь, сообщение в блоге"Django: как обслуживать статические файлы


ну самый простой способ использовать css с django-добавить его в свои шаблоны в виде статических файлов.

но это немного похоже на ajax, я не нашел ничего, что говорит, как включить его стандартным способом.

есть css-компрессор модуль для django, если вы хотите оптимизировать его размер.