Nginx поднимает 403 Forbidden при доступе к статическим файлам в приложении Django на Digital Ocean

Завершив проект django на локальной разработке в моей системе, я последовал руководству Digital Ocean для развертывания приложения django здесь Digital Ocean Django ASGI setup Tutorial.

Я настроил gunicorn в соответствии с учебниками и все тесты и подтверждения пройдены. Но когда я загружаю свой сайт с публичного IP адреса, сайт загружается без стилей или дизайна, без изображений... просто как обычный текст (только html контент)

моя конфигурация nginx следующая

server {
    listen 80;
    server_name XXX.XX.XXX.XX;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        alias /home/username/projectdir/staticfiles;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

и мои настройки проекта django следующие

# The absolute path to the directory where collectstatic will collect static files for deployment.
STATIC_ROOT  = BASE_DIR / 'staticfiles'

# The URL to use when referring to static files (where they will be served from)
STATIC_URL = '/static/'

# extra places to find static filed outside static folder inside installed apps
STATICFILES_DIRS = [ BASE_DIR/"static" ]

MEDIA_ROOT = BASE_DIR/"media"

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

Похоже на проблему с правами доступа. Я столкнулся с такой же проблемой и решил ее, предоставив правильные разрешения статической папке, указанной в settings.py и в nginx.conf.

Дополнительно, в nginx.conf, я отредактировал строку user, добавив свое текущее имя пользователя + свою группу. До этого у меня было: user nginx; Я изменил его на: user <my_username> <group>.

Вы можете получить username, выполнив whoami в терминале. Вы можете использовать id -g -n $whoami, чтобы найти свою группу.

Надеюсь, это поможет.

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