Django: css ссылается на носители в статических файлах (django dev / 1.3 / static files)

Как и любой другой пользователь пользователя django, я обслуживаю статические файлы. Я решил использовать django-staticfiles, чтобы быть готовым к django 1.3, который будет в основном интегрировать его в ядро .

Мой вопрос довольно прост – это отлично подходит для объединения нескольких источников мультимедиа и их единообразного обращения в шаблонах django. Тем не менее, я часто использую фоновые изображения в Css так:

#itemname { background-image: url('/path/to/image.png'); } 

Мой вопрос прост – если я использую абсолютные имена, мне приходится их жестко кодировать. Если я использую относительные имена, переходя к «подкаталогу», URL-адреса помещают местоположение ресурсов для этих элементов, и они не могут быть загружены.

Итак, как мне расширить это решение для CSS? Указанное решение должно избегать:

  • Вложение css в html . Я лично избегаю этого.
  • Использование жестко заданных URL . Это не очень хорошо, потому что на моей локальной установке я обычно использую «localhost / project» с apache для тестирования (mod_wsgi), тогда как я, как правило, использую project.com для развертывания.

Идеи?

2 Solutions collect form web for “Django: css ссылается на носители в статических файлах (django dev / 1.3 / static files)”

Вы сказали, что у вас проблемы с относительными путями, но я не совсем понимаю, что вы имели в виду.

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

Моя настройка в двух словах:

Примечание. Я все еще использую django-staticfiles с Django 1.2, но он должен работать аналогично для Django 1.3

 STATIC_URL = "/site_media/static/" STATIC_ROOT = os.path.join(PROJECT_ROOT, "site_media", "static") STATICFILES_DIRS = ( os.path.join(PROJECT_ROOT, "static_media"), ) 

Затем я обслуживаю CSS из {{ STATIC_URL }}css/style.css который ссылается на изображения на ..http://img.rupython.com/pythonlogo.png .

и мой проект выглядит так:

 project_dir ... stuff static_media ... css images 

Дайте мне знать, если у вас возникнут вопросы, и я уточню.

В порядке,

Я не знаю, если что-то не так с решением Джона, но это не сработало для меня, тогда я поместил этот код в CSS

 {% load static %} {% get_static_prefix as STATIC_PREFIX %} 

а также

 <link rel="stylesheet" href="{{ STATIC_PREFIX }}css/main.css"> 

Надеюсь, поможет!

  • Почему Python не отобразит этот текст правильно? (Проблема декодирования UTF-8)
  • Отображение документов MongoDB с помощью HTML
  • Beautiful Soup найдет элементы со скрытым стилем
  • Переход через HTML DOM в Python
  • Создание HTML-документов в python
  • Как закодировать из файла
  • как использовать python для разграничения двух файлов html
  • ошибка имени пользователя с использованием пользовательской проверки подлинности в django
  • Python - лучший язык программирования в мире.