2015-12-14 6 views
2

У меня есть проект с приложением внутри, и я хочу, чтобы это приложение могло быть reutilizable пакетом, у меня есть шаблон и в котором я определил некоторые стили CSS, но когда я пытаюсь применить фоновое изображение тела, я не могу его отобразить. Я не хочу помещать это изображение в свою глобальную статическую папку, потому что это изображение не для проекта, и оно предназначено только для этого приложения. Моя структура проекта заключается в следующем: project-structureКак использовать статический контент в django вне статической папки

login.html мой шаблон и background.jpg мое изображение. Мой код CSS:

body{ 
     background-image: url('templates/background.jpg'); 
    } 

но это не работает.

ответ

1

1, где хранить файлы

Цитирование django docs (step 4):

хранить ваши статические файлы в папке статичным в приложении

2, проявляется

Тогда, прочитайте Packaging your app step 6, чтобы узнать, как писать манифест. Пример:

Джанго-опросы/MANIFEST.in

include LICENSE 
include README.rst 
recursive-include polls/static * 

3, используйте статические

Не забывайте использовать static на шаблонах:

{% load static from staticfiles %} 
body{ 
     background-image: url('{% static "templates/background.jpg%}'); 
    } 
+0

Пункт 2 предназначен только для публикации вашего приложения. Не требуется для приложения проекта. – danihp

+0

Также вы должны узнать, как развернуть проект с помощью ststic-файлов. Это легко понять, когда вы это понимаете. – danihp

0

Вы можете создать статический папку внутри вашего приложения «app-package», а имя папки должно быть «статическим». Каждый раз, когда django видит статический файл, он ищет его в статической папке во всех ваших приложениях. Теперь перед загрузкой шаблона необходимо загрузить все статические файлы.

login.html

{% load staticfiles %} 
<html> 
<head> 
<style> 
body { 
    background-image: url('static/background.jpg'); 
} 
</style> 
</head> 
<body> 
</body> 
</html> 

Изображение должно быть сохранено в статической папке и настройки для проекта должны знать об этом. Ваши настройки для статических файлов будут выглядеть примерно так. settings and static folder

+0

Будьте осторожны, это кажется более простым, но это поездка. Вы должны использовать команду 'static' template и ** never ** hard-code url. – danihp

+0

Кроме того, жесткая кодировка url для файлов ststic является большой проблемой при развертывании. – danihp

Смежные вопросы