Джанго админ не имеет стиля - PullRequest
8 голосов
/ 02 декабря 2009

Я только что переместил свой сайт django на свой промежуточный сервер, и администраторская сторона сайта не имеет стилей с ним, когда ранее в локальной разработке это было нормально, я где-то читал, что мне нужно создать символическую ссылку, я сделал это, делая это

sudo ln -s /var/www/sico/htdocs /usr/lib/python2.5/site-packages/django/contrib/admin/

но это ничего не сделало, есть что-нибудь еще, что я могу попробовать?

Ответы [ 2 ]

10 голосов
/ 02 декабря 2009

В зависимости от настроек вашего веб-сервера, вы можете сделать это одним из двух способов:

* 1003 символической ссылки * В корневой папке вашего веб-сайта вы должны создать символическую ссылку на медиа-каталог администратора Django с именем в качестве ADMIN_MEDIA_PREFIX в настройках приложения Django. По умолчанию это /media/, поэтому в корневой веб-папке создайте символическую ссылку с именем от media до /usr/lib/python2.5/site-packages/django/contrib/admin/media. (Обратите внимание на конечный символ media в конце символической ссылки, который отсутствует в вашем собственном примере - административный носитель Django находится в подкаталоге media in contrib / admin`). Апачский псевдоним

Если ваш рабочий сервер Apache, и вы можете изменить корневую конфигурацию, вы можете использовать mod_alias, чтобы указать путь к административному носителю Django. Опять же, предполагая, что ваш ADMIN_MEDIA_PREFIX равен /media/, вы можете настроить псевдоним так:

<VirtualHost *:80>
  Alias /media/ /usr/local/lib/python2.5/site-packages/django/contrib/admin/media/
</VirtualHost>

Таким образом, все запросы по пути /media/ будут разрешены в этот каталог.

Подобный метод существует для большинства других серверов, таких как Lighttpd или nginx; обратитесь к документации вашего сервера, если вы не используете Apache.


Решение, использующее Apache mod_alias, вероятно, лучше всего подходит для развертывания, но подход с символическими ссылками также работает.

Причина, по которой ваше приложение работало на вашем промежуточном сервере, наиболее вероятно, потому что оно работало с внутренним веб-сервером Django, который может автоматически разрешать путь к каталогу мультимедиа администратора.

1 голос
/ 02 декабря 2009

Я думаю, что вы создали символическую ссылку неправильно - ваша команда создала символическую ссылку htdocs в .... / contrib / admin /

Вам нужно что-то вроде

sudo ln -s /usr/lib/python2.5/site-packages/django/contrib/admin/ /var/www/sico/htdocs/X

Где X - это все, что вам нужно, чтобы получить ADMIN_MEDIA_PREFIX. Я думаю, что по умолчанию будет admin/media

Надеюсь, это поможет

...