Django не видит статические файлы (ошибка 404)

Я столкнулся с проблемой, когда django не видит статические файлы и я получаю ошибку 404 при каждом посещении страницы.

[05/Oct/2021 19:25:07] "GET /static/main/css/index.css HTTP/1.1" 404 1813

Вот мой set.py


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/


STATIC_URL = '/static/'

STATICFILES_DIRS = ( os.path.join('static'), )

# Default primary key field type

Еще одна часть была вырезана

HTML файл

{% load static %}
<!DOCTYPE html>


<html>
<head>
    <meta charset="utf-8" />
    <title>Hello World</title>
    <link rel="stylesheet"  href="{% static 'main/css/index.css' %}" />
</head>

Другая часть тоже была вырезана

Мои файлы (png)

добавьте это в urls.py

вашего приложения.
url(r'^media/(?P<path>.*)/$', serve, {'document_root': settings.MEDIA_ROOT}, name = 'media'),

не забудьте импортировать это:

from django.conf import settings
from django.conf.urls import url
from django.views.static import serve

Ваши настройки должны быть следующими:

MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = "/media/"

STATIC_URL = '/media/static/'
STATICFILES_DIRS = (BASE_DIR / 'media/static', ) 

STATIC_ROOT = 'media/staticfiles/'

добавьте это в ваш основной urls.py

from django.conf.urls import url
from django.views.static import serve


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

    url(r'^media/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT}),
    url(r'^static/(?P<path>.*)$', serve,{'document_root': settings.STATIC_ROOT}),
]
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

и в вашем settings.py

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
TEMPLATES_DIR = BASE_DIR / 'templates'
STATIC_DIR = BASE_DIR / 'static'

and in the bottom of you settings.py

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    STATIC_DIR,
]

STATIC_ROOT = STATIC_CDN

это должно работать для вас и скажите мне, если проблема все еще не решена и обновить ваш вопрос, что вы пробовали

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

Мой код сейчас:

settings.py

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
STATIC_URL = '/static/'

STATICFILES_DIRS = [
        BASE_DIR / "static"
    ]

index.html:

{% load static %}
<!DOCTYPE html>

<html>
<head>
    <meta charset="utf-8" />
    <title>Hello World</title>
    <link rel="stylesheet" href="{% static 'main/css/style_index.css' %}"/>
</head>
</html>

Структура папки

Вернуться на верх