django: администратор сайта не отформатирован - PullRequest
3 голосов
/ 08 августа 2011

У меня в основном совершенно простой проект django, без добавления моих собственных медиа или настройки интерфейса администратора. Запуск сервера с python manage.py runserver приводит к красиво отформатированному интерфейсу администратора. Запустить сервер с gunicorn_django нет. Почему это так, и как я могу это исправить?

Определенно, проблема не в том, чтобы найти файлы css, но где они хранятся? Я никогда не настраивал это, и значение MEDIA_ROOT равно ''.

РЕДАКТИРОВАТЬ: я просто хочу знать, как django-admin обслуживает несуществующие файлы администратора ... и как я могу заставить gunicorn_django сделать то же самое?

Ответы [ 5 ]

1 голос
/ 11 ноября 2013

Я думаю, что самый простой способ - добавить псевдоним в файл конфигурации nginx (вы используете один из них ?!):

location /static/admin/ {
    alias /<path_to_your_admin_static_files>/;
}

он сразу сработал для меня

1 голос
/ 12 сентября 2011

Я тоже столкнулся с этой проблемой (потому что я занимаюсь разработкой против gunicorn), и вот как убрать волшебство admin-media и обслуживать носители admin как любые другие носители через urls.py:

import os

import django

...

admin_media_url = settings.ADMIN_MEDIA_PREFIX.lstrip('/') + '(?P<path>.*)$'
admin_media_path = os.path.join(django.__path__[0], 'contrib', 'admin', 'media')

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^' + admin_media_url , 'django.views.static.serve', {
        'document_root': admin_media_path,
    }, name='admin-media'),
    ...
)

Также: http://djangosnippets.org/snippets/2547/

И, конечно же, #include <production_disclaimer.h>.

1 голос
/ 08 августа 2011

Если вы используете contrib.static, вам нужно выполнить команду collectstatic, чтобы получить все статические файлы приложения (включая собственные файлы администратора) в общий каталог, который обслуживает gunicorn.

0 голосов
/ 05 марта 2013

Ответ Дэвида Вулевер был близок для моей установки, но я думаю, что некоторые пути могли измениться в более новом django. В частности я установил

admin_media_path = os.path.join(django.__path__[0], 'contrib', 'admin', 'static', 'admin')

и в urlpatterns добавлено:

url(r'^static/admin/(?P<path>.*)$', 'django.views.static.serve', {
        'document_root': admin_media_path,
    }),

на основе информации, найденной здесь: https://docs.djangoproject.com/en/dev/howto/static-files/

работает для меня, но более "волшебно", чем мне нравится.

0 голосов
/ 08 августа 2011

Хорошо, понял. Просто нужно было добавить эту строку в settings.py:

MEDIA_ROOT = '/home/claudiu/server/.virtualenv/lib/python2.5/site-packages/django/contrib/admin/media/'
...