Почему я не могу обслуживать свои статические файлы в 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',
...
]
Теперь все мои статические файлы загружены, и сайт отлично работает без дополнительной настройки
(Я предполагаю, что проблема могла быть вызвана причудой в настройках сервера хостера сайта)