/etc/apache2/site-available/mysite.com
<VirtualHost my_ip_here:80>
ServerAdmin foo@mysite.com
ServerName mysite.com
ServerAlias www.mysite.com
WSGIScriptAlias / /srv/www/mysite.com/djangoproject/django.wsgi
<Directory "/srv/www/mysite.com/djangoproject/sitestatic">
Order allow,deny
Allow from all
</Directory>
AliasMatch /([^/]*\.css) /srv/www/mysite.com/djangoproject/sitestatic/css/$1
AliasMatch /([^/]*\.js) /srv/www/mysite.com/djangoproject/sitestatic/js/$1
Alias /media/ /srv/www/mysite.com/djangoproject/sitestatic/
ErrorLog /srv/www/mysite.com/logs/error.log
CustomLog /srv/www/mysite.com/logs/access.log combined
</VirtualHost>
/srv/www/mysite.com/djangoproject/settings.py
MEDIA_ROOT = ''
MEDIA_URL = '/media/'
STATIC_ROOT = '/srv/www/mysite.com/djangoproject/sitestatic/'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/static/admin/'
На самом деле я правильно вижу свой сайт с моими CSS и изображениями НО когда я захожу в / admin, я вижу админку без CSS. Как исправить? Кроме того, это правильная моя конфигурация apache для обслуживания css и js, и как я могу скрыть содержимое dir / media?
- РЕШЕНИЕ (спасибо Pratik) -
Возможно, проблема в порядке строк в конфиге apache.
<VirtualHost my_ip_here:80>
ServerAdmin foo@site.com
ServerName site.com
ServerAlias site.com
DocumentRoot /srv/www/site.com/cherryproj/templates
Alias /static/admin /usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/contrib/admin/media/
Alias /static/ /srv/www/site.com/cherryproj/static/
WSGIScriptAlias / /srv/www/site.com/cherryproj/django.wsgi
<Directory "/srv/www/site.com/cherryproj/sitestatic">
Order allow,deny
Allow from all
</Directory>
ErrorLog /srv/www/site.com/logs/error.log
CustomLog /srv/www/site.com/logs/access.log combined
</VirtualHost>
Админ-носитель фактически находится внутри пакета dist Django.
Попробуйте поместить что-то подобное в конфигурацию Apache
Alias /static/admin "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/"
Если это не сработает, просмотрите источник страницы, находясь на странице администратора, посмотрите путь, по которому css пытается загрузиться, и укажите псевдоним Apache на этот путь. Вероятно, будет хорошей идеей сделать копию этого административного носителя вне папки dist-packages. Также ваш путь, вероятно, будет другим, особенно если вы используете virutalenv.
Чтобы скрыть содержимое папки мультимедиа, выполните
<Directory "/srv/www/mysite.com/djangoproject/sitestatic">
Options -Indexes
Order allow,deny
Allow from all
</Directory>
В Ubuntu 12.04.1 LTS Server вам нужно добавить эту строку:
Псевдоним / static / admin "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/media"
в вашей конфигурации Apache2 или в VirtualHost.