116 votes

Django - Fichier statique non trouvé

J'ai vu plusieurs posts sur ce sujet mais je n'ai pas trouvé ma solution.

J'essaie de servir des fichiers statiques dans mon environnement de développement Django 1.3.

Voici mes paramètres

...
STATIC_ROOT = '/home/glide/Documents/django/cbox/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
  '/static/',
)
...

Mon urls.py

urlpatterns = patterns('',
...
  url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root', settings.STATIC_ROOT}
  ),
...
);

Mon /home/glide/Documents/django/cbox/static/ se présente comme suit

css
  main.css
javascript
image

J'obtiens une erreur 404 lorsque j'essaie d'accéder à l'application http://127.0.0.1:8000/static/css/main.css .

Dois-je spécifier des modèles pour css, javascript et les images individuellement ?

0voto

Sergo Points 103

Vous n'avez besoin que d'un développement :

STATIC_URL = '/staticfiles/'
STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'staticfiles'),
)

Pour la production (lors de l'utilisation de /manage.py collectstatic) :

STATIC_ROOT  =   os.path.join(PROJECT_ROOT, 'static')

Si Debug = False, vos fichiers statiques ne se chargeront pas. Vous pouvez le vérifier en entrant dans 127.0.0.1:8000/staticfiles/css/main.css (par exemple). Il faut donc passer à Debug = True puis recharger la page via Ctrl+F5.

-1voto

Jens Timmerman Points 1448

{'document_root', settings.STATIC_ROOT} doit être {'document_root': settings.STATIC_ROOT}

ou vous obtiendrez une erreur du type dictionary update sequence element #0 has length 6; 2 is required

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X