Implementando o Django com o mod_wsgi

2

/etc/apache2/site-available/mysite.com

<VirtualHost my_ip_here:80>
     ServerAdmin [email protected]
     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/'

Na verdade, vejo meu site corretamente com meu css e imagens MAS quando vou para / admin vejo site de administração sem CSS. Como posso consertar? Além disso, está correto a configuração do meu apache para servir css e js e como posso ocultar o conteúdo de dir / media?

- SOLUÇÃO (graças ao Pratik) -

Talvez o problema seja a ordem das linhas na configuração do apache.

<VirtualHost my_ip_here:80>
     ServerAdmin [email protected]
     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>
    
por Fred Collins 30.04.2011 / 20:56

2 respostas

2

A mídia administrativa está localizada dentro do pacote dist do Django.

Tente colocar algo assim na configuração do Apache

Alias /static/admin "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/"

Se isso não funcionar, visualize a origem da página enquanto estiver na página de administração, veja o caminho do qual o css está tentando ser carregado e aponte o alias do Apache para esse caminho. É provavelmente uma boa ideia fazer uma cópia para esta mídia administrativa fora da pasta dist-packages. Também seu caminho provavelmente será diferente, especialmente se você estiver usando virutalenv.

Para ocultar o conteúdo da sua pasta de mídia,

<Directory "/srv/www/mysite.com/djangoproject/sitestatic">
  Options -Indexes
  Order allow,deny
  Allow from all
  </Directory>
    
por 30.04.2011 / 21:07
0

No servidor LTS do Ubuntu 12.04.1 você tem que adicionar esta linha:

Alias /static/admin "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/media"

na sua configuração do Apache2 ou no VirtualHost.

    
por 06.01.2013 / 17:27