Alex Rivera | Logout

Django Admin Page missing CSS

Asked 2011-04-04T10:33:13.290
25

I saw this question and recommendation from Django Projects here but still can't get this to work. My Django Admin pages are not displaying the CSS at all.

enter image description here

This is my current configuration.

settings.py

ADMIN_MEDIA_PREFIX = '/media/admin/'

httpd.conf

<VirtualHost *:80>
    DocumentRoot /home/django/sgel
    ServerName ec2-***-**-***-***.ap-**********-1.compute.amazonaws.com
    ErrorLog /home/django/sgel/logs/apache_error.log
    CustomLog /home/django/sgel/logs/apache_access.log combined
    WSGIScriptAlias / /home/django/sgel/apache/django.wsgi

    <Directory /home/django/sgel/media>
        Order deny,allow
        Allow from all
    </Directory>

    <Directory /home/django/sgel/apache>
        Order deny,allow
        Allow from all
    </Directory>

    LogLevel warn

    Alias /media/ /home/django/sgel/media/

</VirtualHost>

<VirtualHost *:80>
   ServerName sgel.com
   Redirect permanent / http://www.sgel.com/
</VirtualHost>

In addition, I also ran the following to create (I think) the symbolic link ln -s /home/djangotest/sgel/media/admin/ /usr/lib/python2.6/site-packages/django/contrib/admin/media/

UPDATE

In my httpd.conf file,

User django
Group django

When I run ls -l in my /media directory

drwxr-xr-x 2 root root 4096 Apr  4 11:03 admin
-rw-r--r-- 1 root root    9 Apr  8 09:02 test.txt

Should that root user be django instead?

<
Edit
Report

2 Answers

5

Another method I just found, and it looks like a properly supported method.

Make sure you have the staticfiles module in your settings. Also configure the STATIC_ROOT option.

https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#module-django.contrib.staticfiles

Create your /static/ folder and set permissions.

Configure apache with a /static/ alias.

alias /static <path to project root>/static/
<Directory "<path to project root>/static/">
    Order deny,allow
    Allow from all
</Directory>

then from your project folder run

sudo python manage.py collectstatic [-n to do a dry run]

All this looks like it does is copy the admin static files to your projects folder for web serving.

answered 2011-08-31T07:50:55.227
3

So the first thing you want to do is change directory to your static folder and add a symlink.

I did this with a virtual environment so I use

ln -s ~/virtualenv/my-virtualenv/lib/python2.x/site-packages/django/contrib/admin/static/admin admin

The next step is to edit your httpd.conf

Alias /static/admin/ ~/mysite/static/admin/

Restart your apache server and voila!

answered 2012-10-17T16:57:15.943

Your Answer