Django Статические файлы не загружаются в шаблон, но они там есть
Я новичок в Django и веб-разработке и испытываю трудности со статическими файлами. Я видел этот или похожие вопросы здесь раньше, но ничего не помогло мне найти решение. Проблема в следующем: я могу найти статические файлы в Django, но они не загружаются в шаблоне.
Структура моих папок следующая (все в папке с именем Django):
media_root_folder
static_root_folder
Project
Project
manage.py
mysite
__init__.py
asgi.py
settings.py
urls.py
wsgi.py
templates
static
admin
Project
style.css
В Settings.py у меня есть следующее:
DEBUG = True
STATIC_URL = 'static/'
STATIC_ROOT = os.path.abspath(r'E:\LM\Django\static_root_folder')
STATICFILES_DIRS = [
BASE_DIR / "static"
]
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
'django.contrib.staticfiles' добавлен как и Project в INSTALLED_APPS
Я также добавил следующее (я нашел на форуме Django, что это иногда решает проблему):
import mimetypes
mimetypes.add_type("text/css",".css", True)
В urls.py я соответственно добавил
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
В моем темпалте я использую:
{% load static %}
<link rel="stylesheet" type="text/css" href=" {% static 'Project/style.css' %} ">
Если я запускаю manage.py findstatic, он находит файлы, и я также могу открыть их непосредственно в браузере. Однако если я запускаю manage.py runserver и загружаю свой сайт (даже в режиме инкогнито и после очистки кэша, а также в нескольких браузерах), CSS не используется для страницы вообще. Я могу видеть только простой html.
Если я загружаю сторону django/admin, то css загружается и представляется четко.
Что я делаю неправильно и как это можно исправить?
Попробуйте использовать команду collectstatic
manage?
$ python manage.py collectstatic
https://docs.djangoproject.com/en/4.0/ref/contrib/staticfiles/