Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django Admin Page missing CSS

Tags:

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?

UPDATE 2 When I enter ls -la in my /media/admin folder

total 12 drwxr-xr-x 2 root root 4096 Apr 13 03:33 . drwxr-xr-x 3 root root 4096 Apr  8 09:02 .. lrwxrwxrwx 1 root root   60 Apr 13 03:33 media -> /usr/lib/python2.6/site-packages/django/contrib/admin/media/ 

The thing is, when I navigate to /usr/lib/python2.6/site-packages/django/contrib/admin/media/, the folder was empty. So I copied the CSS, IMG and JS folders from my Django installation into /usr/lib/python2.6/site-packages/django/contrib/admin/media/ and it still didn't work

like image 811
super9 Avatar asked Apr 04 '11 10:04

super9


2 Answers

In addition to correcting the symbolic link as Daniel Roseman suggested, you'll need to make sure that the user that is running Apache has read access to the admin media.

  • If you do ls -l in your media directory, do you see the symbolic link?
  • If you cd admin from your media directory, does it work? If you then run ls can you see the admin media?
  • Does the user that runs Apache have read access to the admin media?

If all those things work, then please update your question with your current configuration and results of those commands and we'll take another look.

Response to Update: Ok, the permissions look ok. It looks like you've got the directory structure in your media directory a little bit wrong.

The fact that /usr/lib/python2.6/site-packages/django/contrib/admin/media/ was empty is disturbing, too. Once you solve the immediate problem you may want to look into reinstall django in the expected place.

Anyways, here's how the structure should look:

$ cd media $ ls -la drwxr-xr-x 2 root root 4096 Apr 13 03:33 . drwxr-xr-x 3 root root 4096 Apr  8 09:02 .. lrwxrwxrwx 1 root root   60 Apr 13 03:33 admin -> /usr/lib/python2.6/site-packages/django/contrib/admin/media/ -rw-r--r-- 1 root root    9 Apr  8 09:02 test.txt 

That is, inside of the media/ directory their should be a link called admin directly to the /admin/media directory of your django installation.

To fix what you've got, inside of the media/admin/ directory run:

rm media cd .. rmdir admin 

and then re-create the symlink as suggested in Daniel Roseman's answer.

like image 80
Sean W. Avatar answered Oct 06 '22 15:10

Sean W.


There's a couple of problems here, both to do with your symbolic link.

Firstly, the source and target needed to be the other way round (I always get that wrong myself).

Secondly, you have used a completely different path to the one you've specified in your Apache conf - djangotest/sgelections vs django/sgel.

Do it like this:

cd /home/django/sgel/media/ ln -s /usr/lib/python2.6/site-packages/django/contrib/admin/media/ admin 
like image 39
Daniel Roseman Avatar answered Oct 06 '22 14:10

Daniel Roseman