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"> 

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

  • Получение данных формы из html-формы с использованием фляжки и питона
  • «Firefox неожиданно завершается». При запуске основного сценария Selenium в Python
  • Python с использованием Beautiful Soup для обработки HTML на конкретном контенте
  • Исключить скрытые теги при очистке с помощью b4
  • Конвертировать блок jupyter в pdf: ошибка при установке pandoc
  • Экспорт холста HTML в виде последовательности изображений
  • Удаление html-тегов при обходе wikipedia с помощью urllib2 и Beautifulsoup на python
  • Flask css не обновляется
  • используя bs4 для поиска html-тега (h2) с текстом
  • Код Python для удаления тегов HTML из строки
  • Декодирование URL с Python 3
  • Python - лучший язык программирования в мире.