#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')"