Incapable de servir les fichiers statiques comme css, js dans django python
Je suis très nouveau à django
, et fini par le tutoriel pour de nombreux jours , j'ai commencé la construction d'un petit site web à l'aide de django et d'essayer de servir un css
fichier par l'organisation de tous les paramètres nécessaires dans settings.py
fichier. Mais malheureusement, mon code est incapable de servir le fichier css, je veux dire de la notion de servir des fichiers css ne fonctionne pas. J'ai googlé un beaucoup et être passés à la django principal doc tutoriels et a apporté des modifications selon eux,et encore ne fonctionne pas donc approché SO
et collé mon code ci-dessous
Structure de dossier de projet
personnel_blog
|____personnel_blog
|____manage.py |
|____media
|____static
| |____css
| |____personnel_blog_hm.css
|____template
| |____home_page.html
|____settings.py
|____urls.py
|____views.py
|____wsgi.py
Certains de mes settings.py fichier de paramètres ci-dessous
settings.py
import os
PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))
DEBUG = True
MEDIA_ROOT = os.path.join(PROJECT_DIR,'media')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(PROJECT_DIR,'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(PROJECT_DIR,'static'),
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
TEMPLATE_DIRS = (
os.path.join(PROJECT_DIR,'templates')
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
)
urls.py
from django.conf.urls.defaults import *
from django.conf import settings
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', 'personnel_blog.views.home_page'),
url(r'^admin/', include(admin.site.urls)),
)
if settings.DEBUG:
urlpatterns += patterns('',
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT, 'show_indexes': True }),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT, 'show_indexes': True }),
)
views.py
from django.shortcuts import render_to_response
def home_page(request):
return render_to_response("home_page.html")
home_page.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="{{ STATIC_URL }}css/personnel_blog_hm.css" type="text/css">
</head>
<body>
<p>Hello !</p>
<a href="/" target="_top">Home</a>
</body>
</html>
personnel_blog_hm.css
body { background-color:green; }
p {color:blue;background-color:green;padding-left:20px;}
Donc au-dessus de mon code, quelqu'un peut s'il vous plaît laissez-moi savoir ce qui est mal dans le settigns.py fichier ou d'autres py fichiers ?
Si besoin de faire tous les autres paramètres dans le code ci-dessus ?
si quelqu'un peut s'il vous plaît ajuster mon code et de faire les changements nécessaires pour que je cam aller de l'avant et de faire mon premier pas dans la conception des sites web ..... 🙂
Qu'est-ce que le django version que vous utilisez?
Django version 1.4.3
Quel est le code HTML généré? Ne STATIC_URL avoir de la valeur?
OriginalL'auteur Shiva Krishna Bavandla | 2013-02-26
Vous devez vous connecter pour publier un commentaire.
base.html
paramètres
url
Type d'Exception: NameError Valeur d'Exception: nom de "statique" n'est pas défini
ouais, maintenant, après l'importation,je ne reçois pas l'erreur, mais le css ne fonctionne pas comme même
fichier de paramètres est de même dans le répertoire où statique dossier existe, comme je l'ai mentionné dans le projet structue ci-dessus, oui j'ai édité PROJECT_DIR avec votre code
Ouais enfin il a travaillé après le changement de Débogage de la valeur false à true et vraiment merci pour leur soutien en économisant votre temps
OriginalL'auteur catherine
Essayez de changer votre
STATICFILES_DIRS
paramètrePouvez-vous me dire la réponse à partir de l'url localhost:8000/static?
Ceci est le résultat de localhost:8000/statique------ Une erreur de serveur s'est produite. Veuillez contacter l'administrateur.
OriginalL'auteur arulmr
Votre problème est lié à cette ligne:
De Django reinhardt, le moteur de modèle nécessite deux choses à restituer correctement un modèle.
La
context variable
est une clé/valeur, dictionnaire de la liste de toutes les variables disponibles pour le modèle.La
render_to_response
raccourci accepte réellement deux différentes contexte variable de paramètres.Vous êtes absent à la fois.
Sans ces variables, le modèle ne dispose pas de TOUTES les variables disponibles. Si votre
{{ STATIC_URL }}
variable de modèle est probablement vide.Pour corriger, essayez ceci:
Si vous avez fait ci-dessus, vérifiez le code HTML généré et assurez-vous que {{ STATIC_URL }} est remplacée correctement. Si elle l'est, regardez ce qui se passe lorsque vous visitez le site 127.0.0.1:8000/static dans votre navigateur. Est-il générer une erreur 500?
c'est la ligne en html <link href="{{ STATIC_URL }}css/personnel_blog_hm.css" type="text/css"> reponse Page non trouvée (erreur 404) Méthode de Requête: Requête GET à l'URL: localhost:8000/static
Non, le HTML comme on le voit lorsque vous visitez avec votre navigateur web.
OriginalL'auteur Jack Shedd
dans
settings.py
essayer.mon
settings.py
fichier se trouve généralement dans le même répertoire que le répertoire statiqueOriginalL'auteur Frantzdy Romain