Nginx не обслуживает статические файлы django 4.1

я новичок в развертывании проектов мои статические файлы не обслуживаются nginx

так выглядит мой файл site-available/myprject

server{
    listen 80;
    server_name mydomain;

    location = /favicon.ico { access_log off; log_not_found off; }
    
    location /static/ {
    autoindex on;
    alias /home/user/project/static;
    }
    
    location /media/ {
    autoindex on;
    alias /home/user/project/media;
    }

    location / {
     proxy_pass myIp:myPort;

    }
}

мои статические файлы и медиа имеют такой путь

/home/user/project/staict files and media files

спасибо за любые ответы.

Попробуйте следующее в файле settings.py:

STATIC_URL = '/staticfiles/'
STATIC_ROOT = str(BASE_DIR.joinpath('staticfiles'))
STATICFILES_DIRS = [str(BASE_DIR.joinpath('static'))]

Вот что я вижу, что это отличается от моего рабочего Django сайта:

    server_name mydomain;```
should be->

```listen 80;
    server_name myIP;```

```alias /home/user/project/static;``` 
should be ->

```alias /home/user/project/static/;```

```location / {
     proxy_pass myIp:myPort;``` 
should be ->

```locatinon /{ 
      include        proxy_params;
      proxy_pass     http://myIp:myPort; ```

then

```STATIC_URL = '/static/'
STATIC_ROOT =os.path.join(BASE_DIR,'static')```
should be ->

```STATIC_URL = '/static/'
   STATIC_ROOT = /home/user/project/static;
   STATICFIES_DIRS = [os.path.join(BASE_DIR, 'static/'),
   ]```


This is the way my website is setup and it is working totally fine. However. if you change your static files, you will need to rerun "collecstatic."

Я решил проблему следующим образом:

Сначала вам нужно добавить свои urlpatterns в urls.py

static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
  1. создайте dir в /var/www/html/static

  2. sudo chmod -R 777 /var/www/html/static

  3. Запустите collectstatic

  4. установите ваше местоположение в sites-available/project (ваш конфиг nginx)

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