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
, чтобы найти свою группу.
Надеюсь, это поможет.