Статические файлы не отображаются с Django

<!DOCTYPE html>
{% load staticfiles %}
<html>
........
<img src = "{% static 'images/parralax/spaces.jpg' %}"  width = 250px  />
<body>

Приведенный выше код не отображает изображение, которое у меня есть в качестве фона. На самом деле не знаю, как решить эту проблему.

Вот мои файлы настроек. Я думаю, проблема в том, что ссылка на CSS не работает. Заранее спасибо!

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates')
STATIC_DIR = os.path.join(BASE_DIR, 'static')
MEDIA_DIR = os.path.join(BASE_DIR,'media')


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [TEMPLATE_DIR,],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [.....
            ],
        },
    },
]

STATICFILES_DIRS = [STATIC_DIR,  ]
STATIC_URL = '/static/'
MEDIA_ROOT = MEDIA_DIR #where to look for files
MEDIA_URL = '/media/' #where to serve files from on url
WSGI_APPLICATION = 'Space.wsgi.application'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')

.....


.....
urls.py
urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^Spaces/', include('Spaces.urls')),
    #Django Admin
    path('admin/', admin.site.urls),
    #User Management
    url(r'^accounts/', include('allauth.urls')),
    path(r'^users/', include('users.urls')),
    path(r'^users/', include('django.contrib.auth.urls')),
]

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_DIR)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_DIR)

Пожалуйста помоги :)

Ваше здоровье!

{% static 'images/parallax/home/9.jpg' %} какой url выдает? Какой ответ вы получите, открыв этот URL?
Ivan Starostin 20.11.2018 11:46

Страница не найдена (404) URL-адрес запроса: 127.0.0.1:8000/Spaces/images/parallax/home/9.jpg

LeCoda 22.11.2018 04:40

Что такое значения STATICFILES_DIRS, STATIC_URL? Вы запускали collectstatic?

Ivan Starostin 22.11.2018 10:21

Данная конфигурация приведет к 127.0.0.1:8000/static/images/parallax/home/9.jpg из-за использования функции static и значения STATIC_URL = '/static/'. И я предполагаю, что вы не запускали collectstatic и пытаетесь получить доступ к образу, находящемуся в подпапках приложения Spaces. Это правильно?

Ivan Starostin 23.11.2018 15:06

Вы используете DEBUG = True или DEBUG = False?

ivissani 29.11.2018 17:59
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
4
5
627
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Убедитесь, что вы написали эту строку в верхней части своего html-файла:

{% load static %}

Вторая точка - закрыть ваш div с помощью:

</div>

и напишите что-нибудь в div или укажите атрибут height для вашего погружения:

<div class = "full-screen force-full-screen" style = "background: url('{% static 'images/parallax/home/9.jpg' %}') center center no-repeat; background-size: cover;height: 100px;">

третий пункт: убедитесь, что эти две строки находятся в вашем settings.py:

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

Надеюсь это поможет.

использовать

{% load static from staticfiles%}

Используйте {% load static %} в начале ваших файлов HTML (кроме base.html) вместо {% load staticfiles %}.

И убедитесь, что это доступно в вашем settings.py

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

Ответ принят как подходящий

Я исправил эту проблему.

Я все время связывал не ту папку. Глупая ошибка.

Спасибо всем за вашу помощь :)

Другие вопросы по теме