Ответы:
Если вы используете сервер разработки, следуйте руководству проекта 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 ошибки 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" />
.replace('\\','/')
не нужно.
Какие настройки мне нужно сделать, чтобы Django увидел файл css?
Никто.
Убедитесь, что ваш шаблон включает файл CSS (как и стандартный HTML), и поместите файл CSS на медиа-сервер.
Чтобы уточнить: с помощью Django настоятельно рекомендуется обслуживать все ваши медиа (все, что не является динамическим html) с другого экземпляра сервера. Как вы это реализуете, полностью зависит от вас, но большинство людей создают поддомен.
Официальные документы django мне не помогли. Надеюсь, сообщение в блоге « Django: Как обслуживать статические файлы » поможет некоторым из вас.
Самый простой способ использовать css с django - это добавить его в свои шаблоны как статические файлы.
Но это немного похоже на ajax, я не нашел ничего, что подсказывало бы, как его включить стандартным способом.
Для django есть модуль css-компрессора, если вы хотите оптимизировать его размер.