2013-05-14 5 views
1

Je suis en train de configurer Nginx avec uwsgi pour servir l'application Django, mais la mise en page du panneau d'administration est déformée totalement ...Comment servir fichier statique Django sur nginx

Voici ma configuration Nginx:

upstream django { 
    server 127.0.0.1:8000; 
    } 

server { 
    # the port your site will be served on 
    listen  4321; 
    # the domain name it will serve for 
    server_name localhost; 
    charset  utf-8; 
    access_log /var/log/nginx/local-access.log; 
    error_log /var/log/nginx/local-error.log; 

    client_max_body_size 75M; 

    location /static/admin { 

    alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/; 
    } 

    location/{ 
    uwsgi_pass django; 
    include  /etc/nginx/uwsgi_params; 
    } 

}

ici est l'erreur Nginx: 2013/05/13 18:13:26 [error] 12491#0: *255 open() "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/js/ddsmoothmenu.js" failed (2: No such file or directory)

journaux d'accès:

[pid: 6848|app: 0|req: 8/13] 127.0.0.1() {42 vars in 773 bytes} [Tue May 14 12:59:30 2013] GET /admin/ => generated 1960 bytes in 995 msecs (HTTP/1.1 200) 7 headers in 438 bytes (1 switches on core 0) 
[pid: 6847|app: 0|req: 3/14] 127.0.0.1() {44 vars in 858 bytes} [Tue May 14 12:59:32 2013] GET /admin/brightCouponsApp/static/admin/css/login.css => generated 0 bytes in 28 msecs (HTTP/1.1 500) 1 headers in 78 bytes (1 switches on core 0) 

Les fichiers statiques qui appartiennent à mon Django App fonctionnent très bien, mais la mise en page d'administration de Django n'est pas quelqu'un peut me aider ...

+0

Il y a mon nom d'application entre admin et static pourquoi est-ce '/ admin/brightCouponsApp/statique/admin/css/login.css' je pense qu'il devrait être' /admin/static/admin/css/login.css ' –

Répondre

4

Vérifiez la commande collectstatic au lieu de servir les fichiers de votre site-packages annuaire. La commande de gestion copie essentiellement les fichiers statiques de toutes vos applications dans STATIC_ROOT.

+0

Déjà fait .. ne fonctionne pas j'ai une autre application qui a une configuration similaire, mais ça fonctionne très bien ... aucune idée de ce qui se passe ... –

+0

La raison pour laquelle votre configuration ne fonctionne pas pourrait être que racine détient les fichiers django dans les paquets-site et j'espère que vous n'exécutez pas votre travail nginx en tant que root. C'est la raison pour laquelle j'ai suggéré d'utiliser collectstatic. Pour que cela fonctionne, vous devez supprimer 'location/static/admin {...}' de nginx config et ajouter une configuration pour 'location/static {}' pointant sur STATIC_ROOT. – relekang

+1

J'ai essayé cela à .... j'ai utilisé/statique pour mon application aussi bien cela fonctionne bien mais encore une fois les fichiers statiques pour Django sont incapables de charger .... en fait nginx est capable de trouver mais erreur 500 est levée .. ...cette fois –

Questions connexes