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

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

108 голосов
/ 04 ноября 2008

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

Примечание: на локальной машине

Ответы [ 6 ]

48 голосов
/ 06 марта 2009

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

36 голосов
/ 05 ноября 2008

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

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

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

  • Использование этого сервера неэффективно и небезопасно.
  • Не используйте это в производственных условиях.
  • Используйте это только для разработки.
13 голосов
/ 03 октября 2012

Это тоже вызывало у меня проблемы на некоторое время (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-файлы в папку с именем 'media', которая находилась на верхнем уровне моего проекта 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" />
12 голосов
/ 04 ноября 2008

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

Отсутствует.

Убедитесь, что ваш шаблон содержит файл CSS (как в стандартном HTML) и поместите файл CSS на медиасервер.

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

8 голосов
/ 02 декабря 2010

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

0 голосов
/ 24 ноября 2009

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

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

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

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