Django не отображает мой статический файл (css, изображения и т.д.)
Я могу просматривать свой сайт (html) в браузере, но ни одна из моих разметка не работает. Я проверил мои ссылки в таблице стилей на типы, settings.py, но я в растерянности.
.
Когда я запускаю свой сайт, я получаю следующие ответы в терминале.
`[10/Nov/2022 20:46:23] "GET / HTTP/1.1" 200 168
[10/Nov/2022 20:46:23] "GET /static/css/main.css HTTP/1.1" 404 1795
[10/Nov/2022 20:46:23] "GET /static/images/6%2Bcart.png HTTP/1.1" 404 1810`
Вот код из моего файла settings.py:
STATIC_URL = 'static/'
STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ]
Пример моей ссылки на css в моей html странице
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'css/main.css' %}">
Я перепробовал все возможные варианты, но не могу найти проблему, любой и все отзывы будут очень признательны. Мне пока не разрешено размещать изображения, поэтому, к сожалению, я не могу их приложить.
Я перекодировал, удалил и переделал папку static, перерыл весь интернет и пока безуспешно.
Попробуйте эту конфигурацию статического файла, она хорошо работает для меня.
в settings.py
STATIC_URL = 'static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static/')]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') # for deployment
И добавьте в url.py
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
"""
-----
-----
"""
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL , document_root = settings.STATIC_ROOT)
Если это все еще не работает, вы можете добавить следующий код в ваши urlpatterns, чтобы заставить django обслуживать статические файлы.
from django.urls import path, include, re_path
from django.views.static import serve
urlpatterns = [
re_path(r'^static/(?P<path>.*)$', serve, {'document_root':settings.STATIC_ROOT}),
]
Прошу прощения за мой английский
вместо этого:
<link rel="stylesheet" type="text/css" href="{% static 'css/main.css' %}">
Попробуйте это:
<link rel="stylesheet" type="text/css" href="{% static './css/main.css' %}">