Django: нет файлов CSS, JS и другой статитики

Автор: | 05/30/2015
 

django_logo_2После запуска проекта под NGINX + uWSGI вместо простого python runserver – в админпанели не загружаются стили, не отображаются иконки и другие статичные файлы:

django_23

Ниже – одно из (!) решений, которое поможет решить эту проблему.

Находим корневой каталог модуля Django:

$ python -c "
> import sys
> sys.path = sys.path[1:]
> import django
> print(django.__path__)"
['/usr/local/lib/python2.7/site-packages/Django-1.8.1-py2.7.egg/django']

Статичные файлы  для админпанели расположены в contrib/admin/static/admin/:

# ls -l /usr/local/lib/python2.7/site-packages/Django-1.8.1-py2.7.egg/django/contrib/admin/static/admin/
total 12
drwxr-xr-x 2 root root 4096 May  6 16:17 css
drwxr-xr-x 3 root root 4096 May  6 16:17 img
drwxr-xr-x 3 root root 4096 May  6 16:17 js

Создаём алиас /static/ в NGINX:

    location /static/ {
        alias /usr/local/lib/python2.7/site-packages/Django-1.8.1-py2.7.egg/django/contrib/admin/static/;
        expires modified +1w;
    }

Проверяем конфиг NGINX:

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Перезапускаем его:

# service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]

Готово.