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)
создайте dir в /var/www/html/static
sudo chmod -R 777 /var/www/html/static
Запустите collectstatic
установите ваше местоположение в sites-available/project (ваш конфиг nginx)