django: Service des fichiers statiques à travers nginx

j'utilise apache + mod_wsgi pour django.

Et tout

css/js/images

entretenu à travers nginx.

Pour une raison étrange quand

others/friends/colleagues

Essayez d'aller sur le site

jquery/css

Non chargé pour eux, la page a l'air aléatoire.

Mes dossiers html Utiliser ce code -

<link href="[url=http://x.x.x.x:8000/css/custom.css"]http://x.x.x.x:8000/css/custom.css"[/url] rel="stylesheet" type="text/css"/>
<script src="[url=http://1x.x.x.x:8000/js/custom.js"]http://1x.x.x.x:8000/js/custom.js"[/url] type="text/javascript"></script>

Ma configuration nginx Ressemblent à ce sites:

server {   
listen 8000;
server_name localhost;

access_log /var/log/nginx/aa8000.access.log;
error_log /var/log/nginx/aa8000.error.log;

location / {
index index.html index.htm;
}

location /static/ {
autoindex on;
root /opt/aa/webroot/;
}
}

Il y a un catalogue

/opt/aa/webroot/static/

qui ont approprié

css

&

js

catalogues.

Il est étrange que les pages soient affichées normalement lorsque je les attire. J'ai effacé le mien

cache/etc

, Mais ma page est chargée normalement de différents navigateurs.

De plus, je ne vois aucune erreur 404 Dans les fichiers journaux nginx. En fait des magazines pour nginx Pas mis à jour du tout.

J'ai redémarré le serveur nginx avec des droits root, Ce n'est pas correct? Les données WWW personnalisées sont définies dans le fichier de configuration. nginx.

Tous les pointeurs seraient merveilleux.
Invité:

Blanche

Confirmation de:


server_name

doit correspondre au nom de l'hôte dans

link

/

script

URL. Ou déclarez votre configuration par défaut pour cette interface: paire de ports (

listen 8000 default

)

Nginx Doit écouter l'interface à laquelle l'adresse IP de votre hôte est liée (Dans votre cas, c'est normal)

Agathe

Confirmation de:

Tout d'abord, lorsqu'il est utilisé django mieux si vous servez votre css / js, Utilisant MEDIA_URL, Comme défini dans settings.py.

Supposons maintenant que vous ayez

MEDIA_URL='/site_media/'

Et vous avez dans vos modèles

src={{MEDIA_URL}}js/foo.js

ou

href={{MEDIA_URL}}css/bar.css

.

Dans votre configuration nginx Vous aurez besoin d'une entrée correspondante pour MEDIA_URL. Sorte de:

server {
...

location /site_media/ {
autoindex on;
root /opt/aa/webroot/;
}
}

Cela devrait résoudre le problème. Juste pour vérifier si vous pouvez ajouter

/static/

dans href / src Fichiers activés js / css Et voyez ce qui se passe.

Blanche

Confirmation de:

Je mets ce que j'ai fait, ici, puisque la zone de commentaire semble être confuse.

FIM et ALAZ

- Merci pour les conseils qui ont aidé.

C'est comme ça que je l'ai décidé pour tous ceux qui étaient coincés dans le même bateau:


settings.py

-

MEDIA_ROOT = ''

MEDIA_URL = '
http://x.x.x.x:8000/static/
'


In my html

-

<script src="{{MEDIA_URL}} js / jquery-1.3.2.min.js" type="text / javascript"> </script>


In my view

-

return render_to_response ('templates / login-register.html', {}, context_instance = RequestContext (demande));


nginx

-

Ecoutez x.x.x.x: 8000;

Nom du serveur x.x.x.x .;


Restarted nginx


Restarted apache

Pour répondre aux questions, connectez-vous ou registre