nginx не обслуживает Django файл статики администратора - PullRequest
2 голосов
/ 05 февраля 2020

У меня есть проект django на производстве DigitalOcean. Файлы Stati c хорошо подходят для самого приложения, но не для административной части

settings.py

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

/ etc / nginx / sites-available / my-project

server {
        ...

        location /static/ {
                root /home/username/my-project;
        }

        location /media {
                autoindex on;
                alias /home/username/my-project/media/;
        }

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

когда я проверяю в консоли, были ли собраны административные файлы stati c

  • cd my-project / staticfiles
  • ls
admin  css  images  js

cd admin

css  fonts  img  js

EDIT

Давайте поиграем с URL

Здесь я пытаюсь отобразить мой css на публике c часть моего приложения.

my-domain.name/static/css/stylesheet.css

Файл хорошо обслуживается

Теперь я пытаюсь отобразить приложение Django admin css

my-domain.name/static/admin/css/dashboard.css

Страница возвращает код 404

Я не знаю, связано ли это с моей проблемой, но я изменил URL администратора.

path('ez4y5ebGgTkfanLYHdjbX33pQMyX/', admin.site.urls), # the admin url is a long sequence of numeric alpha characters

1 Ответ

2 голосов
/ 06 февраля 2020

Запустили ли вы collectstati c?

django.contrib.staticfiles предоставляет удобную команду управления для сбора файлов stati c в единый каталог, чтобы вы могли легко обслуживать их на производстве .

Измените STATIC_ ROOT

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

и запустите сбор данных c

python manage.py collectstatic  

При этом будут скопированы все файлы из ваши stati c папки в каталоге STATIC_ ROOT.

...