Я не могу решить это, nginx настаивает на том, чтобы искать в «статической» папке, хотя я думаю, что я указал «staticfiles» в качестве местоположения. Тем не менее, журналы постоянно показывают работу «статично» в пути к файлу. Вот nginx.conf:
server {
listen 80;
server_name 10.88.58.95;
location = /favicon.ico { access_log off; log_not_found off; }
root /srv/pcc_django/;
location /staticfiles/ {
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
settings.py
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates')
STATIC_DIR = os.path.join(BASE_DIR, "static")
...
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
...
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.1/howto/static-files/
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
STATIC_DIR,
]
Вот что показывают журналы доступа:
10.184.52.12 - - [18/Oct/2019:12:58:58 +0000] "GET /static/css/microblog/style.css HTTP/1.1" 404 77 "http://10.88.58.95/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0" "-"
10.184.52.12 - - [18/Oct/2019:12:58:58 +0000] "GET /static/images/microblog/platform_control.png HTTP/1.1" 404 77 "http://10.88.58.95/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0" "-"
10.184.52.12 - - [18/Oct/2019:13:03:58 +0000] "GET / HTTP/1.1" 200 5916 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0" "-"
10.184.52.12 - - [18/Oct/2019:13:03:58 +0000] "GET /static/css/microblog/style.css HTTP/1.1" 404 77 "http://10.88.58.95/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0" "-"
10.184.52.12 - - [18/Oct/2019:13:03:58 +0000] "GET /static/images/microblog/platform_control.png HTTP/1.1" 404 77 "http://10.88.58.95/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0" "-"
10.184.52.12 - - [18/Oct/2019:13:03:58 +0000] "GET /static/css/microblog/style.css HTTP/1.1" 404 77 "http://10.88.58.95/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0" "-"
10.184.52.12 - - [18/Oct/2019:13:03:58 +0000] "GET /static/images/microblog/platform_control.png HTTP/1.1" 404 77 "http://10.88.58.95/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0" "-"
10.184.52.12 - - [18/Oct/2019:13:05:58 +0000] "GET / HTTP/1.1" 200 5916 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0" "-"
10.184.52.12 - - [18/Oct/2019:13:05:58 +0000] "GET /static/css/microblog/style.css HTTP/1.1" 404 77 "http://10.88.58.95/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0" "-"
10.184.52.12 - - [18/Oct/2019:13:05:58 +0000] "GET /static/images/microblog/platform_control.png HTTP/1.1" 404 77 "http://10.88.58.95/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0" "-"
Как мне получитьnginx, пожалуйста, посмотрите на правильную папку, она должна выглядеть следующим образом:
/srv/pcc_django/staticfiles/
в данный момент она выглядит так:
/srv/pcc_django/static/
, которая находится в той же папке. Если я поменяю местами имена, это сработает, поэтому я уверен, что мой файл settings.ph правильно настроен относительно DEBUG = False, который является текущей настройкой на сервере.
ОБНОВЛЕНИЕ: я только что отредактировал файл nginx.conf:
location = /favicon.ico { access_log off; log_not_found off; }
location /staticfiles {
root /srv/pcc_django;
}
и получил это из журнала ошибок:
2019/10/21 13:22:00 [error] 5888#0: *1 open() "/srv/pcc_django/staticfiles/static/admin/css/responsive.css" failed (2: No such file or directory), client: 10.184.53.51, server: 10.88.58.95, request: "GET /static/admin/css/responsive.css HTTP/1.1", host: "10.88.58.95", referrer: "http://10.88.58.95/admin/"
Я не знаюЯ не понимаю, откуда приходит / static /, nginx или django, что я могу сделать, чтобы проверить, где на самом деле проблема?