получение nginx для обслуживания файлов * stati c (django, gunicorn) - PullRequest
0 голосов
/ 02 марта 2020

Когда DEBUG = True, Django обслуживает файлы * stati c, и я вижу мой сайт и страницу администратора, стилизованные правильно и работающие правильно js. Моя интуиция в том, что я неправильно настроил nginx, и я изо всех сил пытаюсь найти причину. Немного предыстории:

sudo nginx -t && sudo systemctl restart nginx
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
cat sites-enabled/mysite
server {
    listen 80;
    server_name IP_ADDR;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static {
        root /home/ubuntu/mysite;
    }

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

, которая имеет символическую ссылку на sites-available/mysite

/var/log/nginx/error.log, имеет только строку 2020/03/01 19:57:49 [notice] 20644#20644: signal process started, но журнал доступа имеет номер 404 с. При попытке доступа к URL-адресу приложения на консоли chrome dev отображается:

Refused to apply style from 'IP_ADDR:8000/static/css/console.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
IP_ADDR/:9 GET IP_ADDR:8000/static/js/jquery.min.js net::ERR_ABORTED 404 (Not Found)
IP_ADDR/:11 GET IP_ADDR:8000/static/js/console.js net::ERR_ABORTED 404 (Not Found)
IP_ADDR/:10 GET IP_ADDR:8000/static/js/content.js net::ERR_ABORTED 404 (Not Found)
IP_ADDR/:11 GET IP_ADDR:8000/static/js/console.js net::ERR_ABORTED 404 (Not Found)
favicon.ico:1 GET IP_ADDR:8000/static/favicon.ico 404 (Not Found)

У меня include /etc/nginx/mime.types; в моем nginx .conf, а mime.types включает строку

text/html html htm shtml;,

, хотя я думаю, что это правильно, поскольку мой файл css должен быть text/css, но я не знаю, как лучше преодолеть это препятствие. Я запустил python manage.py collectstatic, и моя структура проекта такова:

(venv) ubuntu@IP_ADDR:~/mysite$ tree -L 1
.
├── README.md
├── manage.py
├── mysite
├── requirements.txt
├── static
├── venv
└── mysite_views_urls_templates

Я не уверен, что даже дал достаточно информации, я действительно пытаюсь углубить свое понимание всего стека .

1 Ответ

0 голосов
/ 02 марта 2020

Ответ был таков: я запускал gunicorn вручную через порт 8000, блокируя nginx от доставки файлов stati c.

...