Как я могу использовать серверные блоки Nginx и Django?

Я следую руководству из https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04 Однако, когда я связываю свой файл home.html в папке шаблонов моего приложения django, он не загружает файлы css и не понимает синтаксис "{& &}"

Как настроить блок сервера nginx для правильной загрузки моего приложения django? мой файл /etc/nginx/sites-available/myonlinefp.com:

сервер {

    root /home/stelity/myonlinefp/foodpantry/templates/;
    index index.html index.htm index.nginx-debian.html home.html;

    server_name myonlinefp.com www.myonlinefp.com;

    location / {
            try_files $uri $uri/ =404;
    }         location /media {       alias /home/stelity/myonlinefp/foodpantry/media/;   }

listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/myonlinefp.com/fullchain.pem; # managed by

Certbot ssl_certificate_key /etc/letsencrypt/live/myonlinefp.com/privkey.pem; # управляется Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # управляется Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # управляется Certbot }

.

server {

if ($host = www.myonlinefp.com) {
    return 301 https://$host$request_uri;
} # managed by Certbot


if ($host = myonlinefp.com) {
    return 301 https://$host$request_uri;
} # managed by Certbot


    listen 80;
    listen [::]:80;

    server_name myonlinefp.com  www.myonlinefp.com;
return 404; # managed by Certbot

}

Вот обновленная nginx конфигурация

server {

    root unix:://run/gunicorn.sock;
    server_name myonlinefp.com www.myonlinefp.com;

    location / {
        try_files $uri $uri/ =404;
    }

    location /media {
        alias /home/stelity/myonlinefp/foodpantry/media/;
    }

    location /static {
        autoindex on;
        alias /home/stelity/myonlinefp/foodpantry/static/;
    }

    listen [::]:443 ssl ipv6only=on;
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/myonlinefp.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/myonlinefp.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

server {

    if ($host = www.myonlinefp.com) {
        return 301 https://$host$request_uri;
    }

    if ($host = myonlinefp.com) {
        return 301 https://$host$request_uri;
    }

    listen 80;
    listen [::]:80;
    server_name myonlinefp.com www.myonlinefp.com;
}

после добавления этого вам нужно выполнить

python manage.py collectstatic

команда & убедитесь, что вы настроили ваши статические файлы в settings.py вот так

STATIC_URL = '/static/'

STATICFILES_DIR = ['/path/to/static/dir/']

STATIC_ROOT = '/path/to/static_root/dir/'

убедитесь, что ваше STATIC_ROOT должно быть таким же, как имя расположения вашего nginx. Для получения дополнительной информации вы можете проверить Serving Static Content

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