Django nginx admin media - PullRequest
       31

Django nginx admin media

3 голосов
/ 20 сентября 2011

Я сейчас тестирую переход с Apache mod_wsgi на Nginx and FastCGI

Я подготовил всю установку и сейчас тестирую ее на CentOS 5.4 box, который работает Django 1.1.2

В моем старом Apache configuration у меня была настройка псевдонима для /media/, а также одна, называемая /mediaadmin/

Как показано ниже.

Alias /media/ "/www/django_test1/omu2/media/"
<Directory "/www/django_test1/omu2/media">

Alias /mediaadmin/ "/opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media/"
<Directory "/opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media">

Как получить настройки того же типа для конфигурации Nginx, в настоящее время здесь приведен фрагмент того, что у меня есть, даже после перезапуска Nginx я все еще не вижу, что моя сторона администратора разрешает правильный CSS, изображения и т. Д.

server {
    location /media/ {
        root /www/django_test1/omu2;
    }
    location /mediaadmin/ {
        root /opt/python2.6/lib/python2.6/site-packages/django/contrib/admin;
    }
}

Мои settings.py

BASE_PATH = os.path.dirname(os.path.abspath(__file__))
BASE_URL = '127.0.0.1'

MEDIA_ROOT = "%s/media/" % BASE_PATH
MEDIA_URL = "%s/media/" % BASE_URL
ADMIN_MEDIA_PREFIX = "%s/mediaadmin/" % BASE_URL

Ответы [ 2 ]

4 голосов
/ 20 сентября 2011

Попробуйте следующую конфигурацию:

location /mediaadmin/ {
    alias /opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media/;
    expires max;
    add_header Cache-Control public;
}

Я изменил путь на /django/contrib/admin/media/, так как я думаю, что наши административные медиа-файлы находятся в этой папке как обычно.

Подсказка: ваши MEDIA_ROOT и ADMIN_MEDIA_PREFIX могут быть абсолютными .

0 голосов
/ 20 сентября 2011

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

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov) {
            access_log   off;
            expires      30d; 
        }

Я это закомментировал и вместо этого изменил / mediaadmin / с root на псевдоним.

...