Почему я не могу обслуживать свои статические файлы в Django?

Прежде чем кто-то отметит это как дубликат, я видел все другие вопросы на похожие темы и пробовал все решения без эффекта.

Мое приложение Django небольшое, и я с удовольствием обслуживаю статические файлы с того же сервера

В settings.py у меня есть

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

Я загрузил свое приложение на сервер и запустил

python.manage.py collectstatic

Все мои статические файлы находятся в соответствующих директориях в разделе staticfiles

project-root
├── staticfiles
│   ├── css
│   │   ├── base.css
│   ├── js
│   │   ├── common.js

В моем html у меня есть

{% load static %}
<link href="{% static 'css/base.css' %}" rel="stylesheet">

При загрузке страницы я получаю ошибку

Отказано в применении стиля из '<URL>', потому что его MIME-тип ('text/html') не является поддерживаемым MIME-типом таблицы стилей, а строгая проверка MIME включена.

Я думаю, это происходит потому, что он не может подать файл css

Где я ошибаюсь? Нужно ли мне предоставить еще какую-то информацию?

имя_проекта - имя_приложения - статический - имя_приложения - файл css/js

<link rel="stylesheet" href="{% static 'app_name/style.css' %}">

Моя проблема была решена установкой пакета whitenoise. (Я не видел, чтобы это рекомендовалось в ответах на похожие вопросы по этой проблеме)

pip install whitenoise

И добавьте его в раздел middleware в settings.py

MIDDLEWARE = [
    ...
    'whitenoise.middleware.WhiteNoiseMiddleware', 
    ...
]

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

(Я предполагаю, что проблема могла быть вызвана причудой в настройках сервера хостера сайта)

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