Как написать код django внутри тега стиля css, чтобы связать изображения из статического каталога

#css #django #tags #styles #django-staticfiles

#css — файл #django #Теги #стили #django-staticfiles #css

Вопрос:

Я хочу написать код Django в тег стиля CSS в HTML elements, чтобы получать изображения из статического каталога. вот мой оригинальный код

 <a href="single.html" class="img" style="background-image: url(images/image_1.jpg);"></a>
  

я попробовал с помощью приведенного ниже кода

 <a href="single.html" class="img" style="background-image: {% static 'images/image_1.jpg' %};"></a>
  

но у меня это не сработало, как я могу решить эту проблему?
ПРИМЕЧАНИЕ: я использовал {% load static %} для загрузки всех статических файлов, css и js работают нормально, но мне не удалось этого сделать.

Ответ №1:

Сначала добавьте этот код в свой settings.py

 STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'myproject/static')
]


# Media settings
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
  

Затем добавьте этот код в свой проект urls.py

 urlpatterns  = static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns  = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  

Затем добавьте эту строку в свой html

 style="background-image: url({%static 'images/person_1.jpg' %});"
  

Ответ №2:

Вы можете проверить, есть ли в вашем root project/settings.py что-то вроде этого:

 STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
  

и затем, в вашем корне project/urls.py :

 from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [...]   static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
  

Чтобы быть уверенным, обязательно перезагрузите свой сервер после этих изменений.

Ответ №3:

В settings.py добавьте это

 STATIC_URL = 'static/'
STATICFILES_DIRS = [
   os.path.join(BASE_DIR, 'static')
]
  

попробуйте преобразовать теги стиля таким образом

 style ="background-image:url(images/image_1.jpg)"
  

Для

 style ="background-image:url('/static/images/image_1.jpg')"