В Production Django staticfiles не работает на том же сервере
Я устал применять различные методы в django, но он не обслуживает staticfiles из папки static
я следовал официальному способу обслуживания статического файла на том же сервере в продакшене, но когда мы устанавливаем DEBUG в False, он не работает
---> дерево каталогов проекта
.
├── chat
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── __init__.py
│ │ └── __pycache__
│ │ └── __init__.cpython-38.pyc
│ ├── models.py
│ ├── __pycache__
│ │ ├── admin.cpython-38.pyc
│ │ ├── apps.cpython-38.pyc
│ │ ├── __init__.cpython-38.pyc
│ │ ├── models.cpython-38.pyc
│ │ ├── urls.cpython-38.pyc
│ │ └── views.cpython-38.pyc
│ ├── static # folder for which i use 'python manage.py collectstatic' in production.
│ │ └── chat
│ │ ├── app.js
│ │ ├── images
│ │ │ └── chatbox-icon.svg
│ │ └── main.css
│ ├── templates
│ │ └── chat
│ │ ├── base.html
│ │ ├── home.html
│ │ ├── new_chat.html
│ │ └── user_info_add.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── chatbot
│ ├── asgi.py
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── settings.cpython-38.pyc
│ │ ├── urls.cpython-38.pyc
│ │ └── wsgi.cpython-38.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── db.sqlite3
├── manage.py
└── users
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ ├── __init__.py
│ └── __pycache__
│ └── __init__.cpython-38.pyc
├── models.py
├── __pycache__
│ ├── admin.cpython-38.pyc
│ ├── apps.cpython-38.pyc
│ ├── __init__.cpython-38.pyc
│ ├── models.cpython-38.pyc
│ └── views.cpython-38.pyc
├── templates
│ └── users
│ └── register.html
├── tests.py
└── views.py
17 directories, 47 files
----> settings.py
я установил Debbug=False и ниже необходимые настройки для статической папки
DEBUG = False
ALLOWED_HOSTS =['*']
INSTALLED_APPS = [
'django.contrib.admin',
'users.apps.UsersConfig',
'chat.apps.ChatConfig',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'corsheaders'
]
# -----------AND STATIC FILES CONFIGURATION IS HERE----------
STATIC_ROOT = os.path.join(BASE_DIR,'static')
STATIC_URL = 'static/'
STATICFILES_DIRS = [
BASE_DIR / "chat/static",
]
я запускаю этот 'python manage.py collectstatic' после чего все файлы попадают в папку STATIC_ROOT, которая является папкой static в корневом каталоге .
но после всего этого ничего не получается.
если DEBUG= True этот css работает, но если я сделаю Flase, то не будет
base.html
это основной html файл, в который импортируются все cdn, css и js файлы
<!doctype html>
{% load static %}
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" type="text/css" href="{% static 'chat/main.css' %}">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<add key="webpages:Enabled" value="true" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet">
<title>Chatbot</title>
</head>
<body>
{% include "chat/home.html" %}
{% if messages %}
{% for message in massages %}
<div class="alert alert-{{message.tags}}">{{message}}</div>
{% endfor %}
{% endif %}
{% block chatbot %} {% endblock chatbot %}
<script type="text/javascript" src="{% static 'chat/app.js' %}"></script>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</body>
</html>
вывод в браузере
выходной файл, когда DEBUG =False
прошу помочь, если кто-то может разобраться с этой проблемой.