Django 404 css файл

Долгое время я пытался решить проблему с загрузкой всех моих статических файлов. Когда я нашел рабочее решение, все svg начали загружаться, но css файлы не загружались.

Вот мой settings.py (показывающий только основные вещи)

import mimetypes
mimetypes.add_type("text/css", ".css", True)
BASE_DIR = Path(__file__).resolve().parent.parent
DEBUG = False
STATIC_URL = '/static/'
if DEBUG: STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
else: STATIC_ROOT = os.path.join(BASE_DIR, 'static')

Вот мой urls.py

from django.contrib import admin
from django.urls import path, include
from django.conf.urls import url

from django.conf import settings

from django.views.static import serve

urlpatterns = [
    path('', include('main.urls')),
    url(r'^static/(?P<path>.*)$', serve,{'document_root': settings.STATIC_ROOT}),       
]

Вот пример использования css файлов в моих шаблонах

{% load static %}
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-v4-grid-only@1.0.0/dist/bootstrap-grid.min.css">
    <link rel="stylesheet" type="text/css" href=" {% static 'css/reset.css' %}">
    <link rel="stylesheet" type="text/css" href=" {% static 'css/main.css' %}">

А это ошибка в Chrome Console

Refused to apply style from '<URL>' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

А также я не могу открыть файлы css в новой вкладке. Я получаю эту ошибку enter image description here

Также, если вы уберете %20 из адресной строки, то я открою файл css

P.S. Я пытаюсь его развернуть

1- Попытка заменить путь на косую черту вперед

<link rel="stylesheet" type="text/css" href=" {% static '/css/reset.css' %}">

2- whitenoise

pip install whitenoise

Затем установите значение "MIDDLEWARE" в файле "settings.py". Наконец, CSS успешно загружается:

MIDDLEWARE = [
    # ...
    "django.middleware.security.SecurityMiddleware",
    "whitenoise.middleware.WhiteNoiseMiddleware", # Here
    # "whitenoise" will solve "MIME type" error then CSS is loaded successfully:
]

3- измените ваш статический URL следующим образом:

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

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Думаю, ваша ошибка в том, что вы поставили пробел перед вашей статической ссылкой

<link rel="stylesheet" type="text/css" href=" {% static 'css/reset.css' %}">

Попробуйте убрать пробел перед {%, чтобы он стал

<link rel="stylesheet" type="text/css" href="{% static 'css/reset.css' %}">

%20 переводится как символ пробела в URL, поэтому я думаю, что проблема именно в этом

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