Vous n'êtes pas identifié(e).
Bonjour, c'est encore moi ! ^^
J'ai un problème avec mes fichiers statiques, qui théoriquement devraient bien s'afficher.
Dans mon views.py, j'ai bien mon :
from django.contrib import staticfiles
Dans urls.py :
# Début de mon fichier
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
Dans mon settings.py :
STATICFILES_ROOT = '/home/christophetd/www/tests/django/meetmyband/static' # J'ai vérifié, le dossier existe bien.
STATICFILES_URL = '/static/'
J'ai mis un fichier de test dans /home/christophetd/www/tests/django/meetmyband/static/images/, puis ai fait un python manage.py collectstatic.
Dans le template dans lequel je veux afficher l'image, j'ai ceci :
<img alt="Avatar" src="{{ STATICFILES_URL }}images/avatar.jpg" />
Le rendu HTML est le suivant :
<img alt="Avatar" src="/static/images/avatar.jpg" />
Apparemment normal donc, mais l'image ne s'affiche pas !
J'ai essayé de contourner le problème en redirigeant /static/images/* vers une fonction qui elle redirigerait vers l'image, mais bon, c'est foireux et ça ne marche pas. Si quelqu'un peut m'aider, je prends !
[Edit] Je précise, au cas où, que j'indique bien le contexte lors du rendu de mon template :
return render_to_response('tpl.html', {
'foo': bar,
},
context_instance=RequestContext(request))
Dernière modification par christophetd (31-10-2010 15:12:06)
Hors ligne
Je ne connais pas ce module de staticfiles. Il a l'air pas mal
Jusqu'à présent j'utilisais cette méthode :
Je definisais MEDIA_URL et MEDIA_ROOT dans mon fichier settings.py
Et dans le fichier ulrs.pu j'ajoutais à la liste des patterns :
(r'^medias/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': MEDIA_ROOT}),
Ainsi dans le répertoire /medias/ j'ai mes fichiers.
Peux-tu essayer d'ouvrir ton fichier /static/images/avatar.jpg pour voir le message d'erreur que tu obtiens ?
Si c'est une erreur 404, tu auras la liste des URLS possible.
Ce que tu peux tester aussi c'est de mettre ces deux lignes :
# Début de mon fichier
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
À la fin de ton fichier et non au début car là tu écrases urlspatterns avec tes nouvelles pattern définie juste avant.
Hors ligne
staticfiles est une contrib intégrée dans 1.3 je crois (ou la dev ?), mais je ne l'ai pas encore testée...
Le 31 oct. 2010 à 15:37, Rémy HUBSCHER <hubscher.remy _AT_ gmail.com> a écrit :
> Je ne connais pas ce module de staticfiles. Il a l'air pas mal
> Jusqu'à présent j'utilisais cette méthode :
>
> Je definisais MEDIA_URL et MEDIA_ROOT dans mon fichier settings.py
>
> Et dans le fichier ulrs.pu j'ajoutais à la liste des patterns :
>
>
> (r'^medias/(?P<path>.*)$',
> 'django.views.static.serve',
> {'document_root': MEDIA_ROOT}),
>
>
> Ainsi dans le répertoire /medias/ j'ai mes fichiers.
>
> Peux-tu essayer d'ouvrir ton fichier /static/images/avatar.jpg pour voir
> le message d'erreur que tu obtiens ?
> Si c'est une erreur 404, tu auras la liste des URLS possible.
>
> Ce que tu peux tester aussi c'est de mettre ces deux lignes :
>
>
# Début de mon fichier
> from django.contrib.staticfiles.urls import staticfiles_urlpatterns
> urlpatterns += staticfiles_urlpatterns()
>
> À la fin de ton fichier et non au début car là tu écrases urlspatterns
> avec tes nouvelles pattern définie juste avant.
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
Hors ligne