Я собираюсь опубликовать свой первый проект Django в дроплете Digital Ocean. Я следовал официальному руководству Digital Ocean по установке Django на дроплете (https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn). -on-ubuntu-22-04#creating-systemd-socket-and-service-files-for-gunicorn) и все работало нормально, но отдача статических файлов.
Вот ключевые части моих файлов:
settings.py
BASE_DIR = Path(__file__).resolve().parent.parent
STATIC_ROOT = os.path.join(BASE_DIR,"static")
STATIC_URL = '/static/'
DEBUG = False
COMPRESS_ROOT = os.path.join(BASE_DIR,"static")
COMPRESS_ENABLED = True
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'compressor.finders.CompressorFinder',
]
urls.py
urlpatterns = [
...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Вот моя структура папок в цифровом океане:
root/
snap/
gymtracker/
gymenv/
gymtracker/
gymtrackerapp/
static/
Я вижу в терминале в цифровом океане, что все статические файлы находятся в этом месте:
/ корень / спортзал / спортзал / статический /
но когда я загружаю страницу, я получаю 403 для статических файлов (в противном случае страница загружается нормально):
Метод запроса: ПОЛУЧИТЬ
Код состояния: 403 Запрещено
Большое спасибо за Вашу помощь!





Решение найдено.
Учебное пособие по цифровому океану (https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-22-04#creating -systemd-socket-and-service-files-for-gunicorn) пропустил одно важное изменение конфигурации Nginx в конце, чтобы ваши статические ресурсы отображались.
После того, как вы выполните руководство, вам нужно отредактировать /etc/nginx/nginx.conf и изменить пользователя с www-data на ваше имя пользователя (например, sammy), запустив
sudo nano /etc/nginx/nginx.conf