Джанго не отображает изображение в CSS - PullRequest
0 голосов
/ 25 февраля 2010

У меня есть приложение django. Я добавил изображение (url) в css, оно не отображается.

Но когда я использовал его как HTML-файл, он отображает изображение. Должен ли я установить для этого какой-либо URL в settings.py? Источник [показан здесь] [1]. [1]: http://dpaste.com/164620/

Ответы [ 2 ]

1 голос
/ 25 февраля 2010

Это определенно локальный путь. Вам нужен либо путь относительно корня документа (по умолчанию Django не обслуживает медиафайлы, его не рекомендуется использовать за пределами среды тестирования), либо абсолютный URL-адрес, если файл находится в другом (суб) домене ( например, локальный хост Apache, который обслуживает мультимедийные файлы).

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

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

РЕДАКТИРОВАТЬ: НЕТ, правда. Это путь. Путь в CSS или HTML будет проанализирован вашим браузером. Таким образом, даже если вы запустите объект на локальном хосте, абсолютный путь (начиная с /) будет проанализирован относительно корня документа (то есть передан в разрешение URL Django).

Если ваш сайт работает на http://localhost:8000, /home/logic/quote/template/hummingbirds.gif будет обрабатываться как http://localhost:8000/home/logic/quote/template/hummingbirds.gif, т. Е. Ваш браузер отправит HTTP GET запрос на сервер, работающий на localhost:8000 для пути /home/logic/quote/template/hummingbirds.gif , Если сервер Django, он попытается найти правило, соответствующее /home/logic/quote/template/hummingbirds.gif в вашем urls.py. Вы не можете обратиться к файлу в вашей файловой системе, просто передав локальный путь.

Если вы хотите обслуживать статические файлы (например, изображения) с помощью Django (т. Е. В том же домене, на котором работает Django), вам необходимо настроить его так, чтобы он сначала обслуживал эти файлы следующим образом: http://docs.djangoproject.com/en/dev/howto/static-files/

Если вы хотите обратиться к файлу в вашей файловой системе (практика BAD и должна быть заменена, если вещь когда-либо выходит в сеть), вам нужно явно использовать протокол file://. Абсолютные URL (т.е. без префикса протокола и имени домена) всегда будут обрабатываться как относящиеся к текущему протоколу и домену.

0 голосов
/ 25 февраля 2010

это /home/logic/quote/template/hummingbirds.gif ваш путь к изображению? это похоже на местный путь. это показывает, когда вы печатаете http://your.host/home/logic/quote/template/hummingbirds.gif

если вы установили цвет фона, появится ли цвет?

предложение: на firefox с firebug:

  • включить предупреждение css
  • lokks в разобранном файле css (вкладка css), чтобы проверить, хорошо ли написано ваше правило
  • проверить элемент, на котором должен быть фон, и убедиться, что к нему применено правило css, а не переписано
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...