CSS Администратора Django Не Загружается в рабочей среде, Даже Если Статические Файлы Обрабатываются (200 ОК)
Я столкнулся с проблемой, из-за которой моя панель администратора Django на моем рабочем сервере отображается без изменений, хотя все статические файлы обрабатываются корректно. adminHTML содержит соответствующие теги <link>
, и я могу подтвердить, что файлы CSS доступны по прямому URL.
Детали окружающей среды:
- Производство: виртуальная машина Azure
- Django: последняя версия
- Сервер приложений: Gunicorn
- Веб-сервер: nginx на Ubuntu
- Промежуточное программное обеспечение: Удален белый шум (во избежание конфликтов)
- Статические файлы: собраны с помощью python manage.py collectstatic --noinput
Примечание: Я использую одну и ту же виртуальную машину azure для своего серверной части django и интерфейса react
Что я сделал/проверил:
1. Настройки Django:
- Установите
STATIC_URL
и сконфигурируйтеSTATIC_ROOT
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
2. Конфигурация Nginx:
server {
listen 80 default_server;
server_name _;
client_max_body_size 200M;
# Favicon
location = /favicon.ico {
access_log off;
log_not_found off;
}
location /static/ {
alias /home/ubuntu/example/staticfiles/;
autoindex on;
}
# Serve media files
location /media/ {
root /home/ubuntu/example;
autoindex on;
}
# Proxy API requests to Django backend
location /api/ {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
# Proxy Django admin requests to the Django backend
location /admin/ {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
# Serve the React frontend from its build output
location / {
root /home/ubuntu/frontend/dist; # Adjust path if needed
try_files $uri /index.html;
}
}
3. Проверка статических файлов Выполняется
curl -I https://skumapper.x-demand.com/static/admin/css/base.css
возвращает 200 OK
с соответствующим content-type (text/css)
.
HTML-код страницы входа в систему администратора Django включает в себя:
<link rel="stylesheet" href="/static/admin/css/base.css">
На вкладке сеть браузера показано, что все необходимые CSS и JS файлы возвращают статус 200
4. Дополнительные проверки:
- Я очистил кэш браузера и даже протестировал его в режиме инкогнито.
- Я проверил права доступа к файлам на
/home/ubuntu/example/staticfiles/
(принадлежитwww-data
, с правами доступа, установленными на755
). - Я подтвердил, что
collectstatic
поместил все необходимые файлы в каталогstaticfiles
.
Проблема: Несмотря на то, что все статические файлы доступны, а ссылки на странице администратора в HTML выглядят корректно, панель администратора Django остается без изменений. В консоли браузера нет сообщений об ошибках 404 или предупреждений о смешанном содержании.
Вопросы:
- Что может привести к тому, что CSS администратора Django (и, возможно, другие статические ресурсы) не будут применяться, даже если они обслуживаются должным образом?
- Существуют ли какие-либо потенциальные проблемы с кэшированием или путями (например, с кэшированием памяти), которые могут привести к тому, что интерфейс администратора останется без изменений?
- Какие дополнительные шаги по отладке я могу предпринять, чтобы устранить проблему?
Мы были бы очень признательны за любую помощь или разъяснения!