Невозможно обслужить статический файл в Django, развернутом на производстве в Digital ocean

в настоящее время я развернул свое приложение django в Digital ocean droplet. На localhost оно работает хорошо, но оно не может обслуживать js/css файлы в папке static при развертывании на prod, после некоторого гугления возможных решений, ничего не работает для меня.

    server {
         server_name keywordprocessor.prodsite.com www.keywordprocessor.prodsite.com>

         location = /favicon.ico { access_log off; log_not_found off; }
         location /static/ {
            root /root/projects/backend/crawler;
         }
         location / {
            include proxy_params;
            proxy_pass http://unix:/run/gunicorn.sock;
         }
         .....

По умолчанию проект находится в корневом каталоге Digital Oceans

    `cd projects` `pwd`  returns /root/projects/

Настройки

     # Static files (CSS, JavaScript, Images)
     # https://docs.djangoproject.com/en/4.0/howto/static-files/

     STATIC_URL = "/static/"
     STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
     STATIC_ROOT = os.path.join(BASE_DIR, "/")

Вот как выглядит папка проекта

  backend/
        crawler/
        static/
        templates
  .gitignore
  requirements.txt

/etc/systemd/service/gunicorn.service

  [Unit]
  Description=gunicorn daemon
  Requires=gunicorn.socket
  After=network.target


 [Service]
 User=root
 Group=root
 WorkingDirectory=/root/projects/backend/crawler
 ExecStart=/usr/local/bin/gunicorn \
      --access-logfile - \
      --workers 3 \
      --bind unix:/run/gunicorn.sock \
      crawler.wsgi:application


 [Install]
 WantedBy=multi-user.target


 

Все js и css файлы не могут быть обработаны

  `Failed to load resource: the server responded with a status of 404 (Not Found)`
 

Загружается страница, но css испорчен

Приветствует

скопируйте ваши статические файлы в /var/www/static и измените nginx conf

1.Команда копирования в директории проекта cp -r ./static /var/www/static/ 2.Разрешение на статическую папку, которая находится в команде /var/www/static/ sudo chmod 755 static 3.Измените ваш nginx.conf следующим образом

server {
    listen 80;
    server_name Your-IP;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        alias /var/www/static/;
    }

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

4.Выполните эти команды для nginx и gunicorn

a) sudo nginx -t

b) sudo systemctl restart nginx

c) sudo systemctl restart gunicorn

5.Если вы получите какую-либо ошибку, проверьте журналы с помощью sudo tail -F /var/log/nginx/error.log и повторите попытку.

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