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

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

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

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
111
0
94 731
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

What settings do i need to do to make Django see the css file?

Никто.

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

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

Привет, Оли. Я знаю, что этому посту почти 3 года, но является ли это лучшим способом связать css с шаблонами django? Похоже, что было бы проще всего просто связать css с URL-адресом abs, например static.example.com, и просто хранить все статические файлы по этому URL-адресу.

cp3 27.02.2011 00:34

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

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

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

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

«Не используйте это в производственных условиях». Не могли бы вы подробнее остановиться на этом?

Chris 30.07.2011 17:50

@Chris: Вы правы, утверждение было немного двусмысленным. Я имел в виду сервер разработки Django. Хотя я запускал его несколько раз на нашем производственном сайте, это было только в течение коротких периодов времени при отладке грубых проблем.

Peter Rowell 30.07.2011 20:07

Спасибо за разъяснения, я смотрел на свои развертывания django, работающие на apache, задаваясь вопросом, что я сделал не так. :)

Chris 30.07.2011 23:13

Хороший. Мне нравится, что 3 пункта говорят об одном и том же по-разному. Спасибо за предупреждение.

KobeJohn 14.10.2011 12:35

Мне очень нравятся люди, которые приходят через 4,5 года после того, как был опубликован ответ, и голосуют против. Интересно, знали ли они вообще, что такое Django был в 11/08 ... наверное, нет. Меня поражают не очки репутации, а проявленное сочетание невежества и высокомерия с намеком на то, что вааай опаздывает на вечеринку. Интересно, как бы они оценили мои сообщения на comp.lang.c, скажем так, в 1987 году? Лучше не спрашивать.

Peter Rowell 24.02.2013 05:52
Ответ принят как подходящий

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

Небольшое примечание об этих документах Django - убедитесь, что вы выбрали документы для той версии Django, которую вы используете. Похоже, что между версиями многое изменилось в отношении статических файлов.

Sam Starling 03.11.2010 14:09

@Sam имеет большое значение. Я всю жизнь не мог разобраться в статических файлах. затем измените установленную версию django и вуаля. это было буквально все, что мне нужно было сделать, потому что, очевидно, я искал документы для неправильной версии.

Josh Brown 20.09.2013 07:56

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

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

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

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

Это тоже вызывало у меня проблемы некоторое время (404 ошибки not found). Мне не хватало места в том, чтобы отредактировать кортеж 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" />

Наконец, ясное, простое и элегантное решение. Прекрасно работает с django 1.5.

pbarill 01.12.2013 20:38

# Всегда используйте косую черту, даже в Windows. .replace('\\','/') не нужен.

mak 16.01.2015 19:58

Другие вопросы по теме