Django Admin de la Page manquante CSS
J'ai vu ce question et de la recommandation de Django Projets ici, mais ne peut toujours pas obtenir que cela fonctionne. Mon Django Admin des pages ne sont pas de l'affichage de la CSS à tous.
C'est ma configuration actuelle.
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>
En outre, j'ai également fait les opérations suivantes pour créer (je pense) le lien symbolique
ln -s /home/djangotest/sgel/media/admin//usr/lib/python2.6/site-packages/django/contrib/admin/media/
Mise à JOUR
Dans mon httpd.fichier conf,
User django
Group django
Quand je lance la commande ls-l dans mon /media
répertoire
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
Devrait qu'utilisateur root être de django à la place?
Mise à JOUR 2
Quand je rentre ls -la
dans mon /media/admin
dossier
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/
Le truc, c'est que lorsque je navigue à /usr/lib/python2.6/site-packages/django/contrib/admin/media/
, le dossier était vide. J'ai donc copié le CSS, IMG et JS dossiers de mon Django installation dans /usr/lib/python2.6/site-packages/django/contrib/admin/media/
et il ne fonctionne toujours pas
- Pour répondre à votre question au sujet de la propriété de la sous-répertoires du
/media
: non, le fichier des autorisations de ne pas empêcher les autres utilisateurs d'avoir accès en lecture à ces fichiers (voir la rx bits sur le groupe et d'autres de l'accès), de sorte que les autorisations de fichier ne sont pas un problème. - Ah merci. Toujours obtenir mes pieds mouillés dans linux!
- Qu'est-ce que la page d'erreur que vous obtenez lorsque vous allez à /media/admin/css/base.css?
- Quand je goto
http://www.sgel.com/media/admin/css/base.css
, je reçoisOops this link appears to be broken
- Ressemble le lien symbolique n'est pas encore mis en place. Est-il possible que vous jeté l'emplacement
/usr/lib/python2.6/site-packages/django/contrib/admin/media/
avec l'original de votre tentative de faire un lien symbolique? - Je ne sais pas? Comment puis-je vérifier et de commencer à partir de zéro? J'ai été à la suite de Daniel Roseman de la solution après ma tentative
- Mise à jour de ma réponse!
- Ajout d'un nouvel élément de réponse, merci de l'essayer et de mettre à jour les résultats ici... j'Espère que ça aide.
Vous devez vous connecter pour publier un commentaire.
En plus de corriger le lien symbolique comme Daniel Roseman proposé, vous aurez besoin pour vous assurer que l'utilisateur qui exécute Apache a accès en lecture à l'admin médias.
ls -l
dans votre répertoire de médias, voyez-vous le lien symbolique?cd admin
à partir de votre répertoire de médias, cela fonctionne t'il? Si vous exécutez ensuitels
pouvez-vous voir l'admin médias?Si toutes ces choses fonctionnent, alors s'il vous plaît mettre à jour votre question avec votre configuration actuelle et les résultats de ces commandes et nous allons prendre un autre regard.
Réponse à la mise à Jour: Ok, les autorisations de regarder ok. Il semble que vous avez la structure de répertoire dans votre répertoire de médias un peu de mal.
Le fait que
/usr/lib/python2.6/site-packages/django/contrib/admin/media/
était vide, c'est dérangeant, trop. Une fois que vous résoudre le problème immédiat vous pouvez réinstaller django à l'endroit prévu.De toute façon, voici comment la structure devrait ressembler à:
Qui est, à l'intérieur de la
media/
leur répertoire doit être un lien appeléadmin
directement à la/admin/media
répertoire de votre installation de django.Pour corriger ce que vous avez, à l'intérieur de la
media/admin/
répertoire géré:et puis re-créer le lien symbolique comme le suggère Daniel Roseman de réponse.
ADMIN_MEDIA_PREFIX = '/media/admin/'
. si vous Suivez Ce que Sean a dit qu'il va travailler. Sinon pour changer votre settings.py pourADMIN_MEDIA_PREFIX = '/media/admin/media/'
./media/admin
qui a conduit à la sym lien créé dans/media/admin/media
qui ne correspond pas à laADMIN_MEDIA_PREFIX
réglage. C'est en fait assez un simple problème après tout. Merci pour votre aide les gars de l'esp. votre commentaire James. Il a tout fait clic dans ma compréhension.Il ya un couple de problèmes ici, à la fois à faire avec votre lien symbolique.
Tout d'abord, la source et la cible devait être dans l'autre sens (j'ai toujours ce mal de moi-même).
Deuxièmement, vous avez utilisé une voie complètement différente de celle que vous avez spécifié dans votre conf Apache -
djangotest/sgelections
vsdjango/sgel
.De faire comme ceci:
La solution de facilité consiste à modifier une ligne dans votre wsgi.py fichier
devient
Façon la plus simple d'avoir l'Admin CSS afficher correctement. Cheers
Une autre méthode que je viens de trouver, et il ressemble à un correctement méthode de prise en charge.
Assurez-vous que vous avez la staticfiles module dans vos paramètres. Également configurer le STATIC_ROOT option.
https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#module-django.contrib.staticfiles
Créer votre /static/dossier et définir des autorisations.
Configurer apache avec un /static/alias.
puis, à partir de votre dossier de projet, exécuter
Tout cela ressemble, il n'est de copier l'admin des fichiers statiques de votre dossier de projets pour les services web.
Donc, la première chose que vous voulez faire est de changer le répertoire de votre statique dossier et ajouter un lien symbolique.
Je l'ai fait avec un environnement virtuel, donc j'utilise
La prochaine étape est de modifier votre httpd.conf
Redémarrer votre serveur apache et le tour est joué!
Dans Firebug, utilisez l'onglet Net et de voir les demandes faites par votre navigateur pour les fichiers css. voir la réponse à vos demandes il lui-même. Je pense que vous trouverez le problème, c'.
J'ai récemment eu le même problème. Le problème, c'est quand mon requêtes du navigateur pour les fichiers css, la réponse contenait le contenu de mon projet de connexion de la page html. Je ne me souviens plus comment j'ai résolu mon problème. Je vais tenter de se rappeler et de poster la solution ici.
Laissez-moi savoir si vous avez le même problème.
J'ai eu le même problème mais rien de cela n'aidait vraiment. S'est avéré ma version de grappelli, est dépassée. (https://github.com/sehmaschine/django-grappelli) J'ai désinstallé puis ré-installé avec une version plus récente.
pip install django-grappelli==2.4.4
Si vous utilisez un admin de la peau comme moi, vous pourriez envisager de le mettre à jour.
Essayez d'ajouter
à votre
de sorte que vous vous retrouvez avec
Options FollowSymLinks
et de le redémarrer Apache. Toujours pas de joie.Je ne suis pas sûr si cela va aider, mais dans mon fichier de config j'ai:
Il fonctionne, mais j'ai mon serveur qui est configuré pour le développement/test.
j'ai utilisé le même problème, je l'ai résolu en utilisant le plugin FireFox firebug, qui vous indique où se trouve votre site à la recherche pour les fichiers multimédias, et comment avez-vous vérifier le contenu de l'admin/media dossier pour voir si elles étaient vides ?
Je sais que c'est résolu, mais je pense qu'il est digne de partager ma solution.
J'ai simplement ajouté l'alias dans apache et cela a fonctionné jusqu'à présent.
/usr/lib/pymodules/python2.6/django/contrib/admin/media
. On devraitcd /usr/lib
etls -a -R | grep -i media
de voir ce que le répertoire est sous un système d'exploitation et la version de python.vous pouvez exécuter
l'autre question - est-ce que votre normal médias placé dans le dossier /home/django/sgel/media/travail (servi par Apache comme prévu?)
Avez-vous essayez de définir la valeur de
MEDIA_ROOT
MEDIA_URL
ADMIN_MEDIA_PREFIX
correctement?
Je veux dire que la MEDIA_ROOT url et ADMIN_MEDIA_PREFX doit avoir une valeur différente. Veuillez vérifier ces valeurs dans votre settings.py et essayez de nouveau.
Espère que cette aide.
J'ai rencontré le même problème lors de l'exécution de la Bitnami Django Pile sur Win32 (builtin serveur de développement)
J'ai résolu le problème en trouvant le manque CSS dossiers dans l'installation et la modification settings.py.
Ce sera vous aider à obtenir commencé à développer... Ce n'est pas optimal. N'oubliez pas la virgule 🙂
lorsque nous avons parlé de django, nous devons savoir que l'édition à laquelle nous courons sur. "ADMIN_MEDIA_PREFIX" est utilisé dans django avant d'édition de 1,4, voir
https://docs.djangoproject.com/en/dev/releases/1.4/.
Je suis à l'aide de django 1.4, et encore confus à ce sujet.
STATICFILES_DIRS
comme"/usr/lib/python2.6/site-packages/django/contrib/admin/static/"
. et ensembleSTATIC_ROOT
commeos.path.join(SETTINGS_PATH, '../static')
et la Deuxième j'utilisecollectstatic' to collect static file from 'STATICFILES_DIRS
àSTATIC_ROOT
. Troisièmement ,définirSTATIC_URL
comme/tdjproj/static/
. De suite, Alias STATIC_URL à STATIC_ROOT(eg.Alias /tdjproj/static/ /var/www/vhost1/tdjproj/static/
).Si rien n'y fait, ajoutez ce qui suit urls.py
Ceci est indépendant de apache ou nginx
Si vous utilisez
virtualenvwrapper
comme moi, alors c'est comment vous pouvez trouver votre admin fichiers multimédia et de les corriger:Remplacer le
<project_name>
à votre virtualenvwrapper nom de l'environnement etproject_dir
de votre répertoire de travail. 🙂