Ma machine locale utilise Python 2.5 et Nginx sur Ubuntu 8.10, avec Django construit à partir du dernier tronc de développement.
Pour chaque URL que je demande, il lance :
TemplateDoesNotExist at /appname/path appname/template_name.html
Django a essayé de charger ces tem * Utilisation du chargeur django.template.loaders.filesystem.function : * Utilisation du chargeur django.template.loaders.app_directories.function :
T ('/usr/lib/python2.5/site-packages/projectname/templates',)
Cherche-t-il /usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html dans ce cas ? Ce qui est étrange, c'est que ce fichier existe bel et bien sur le disque. Pourquoi Django n'arrive-t-il pas à le localiser ?
Je fais tourner la même application sur un serveur distant avec Python 2.6 sur Ubuntu 9.04 sans ce problème. Les autres paramètres sont les mêmes.
Y a-t-il quelque chose de mal configuré sur ma machine locale, ou qu'est-ce qui aurait pu causer de telles erreurs et que je devrais vérifier ?
Dans mon settings.py Je l'ai précisé :
SETTINGS_PATH = os.path.normpath(os.path.dirname(__file__))
# Find templates in the same folder as settings.py.
TEMPLATE_DIRS = (
os.path.join(SETTINGS_PATH, 'templates'),
)
Il doit rechercher les fichiers suivants :
- /usr/lib/python2.5/site-packages/projectname/templates/appname1/template1.html
- /usr/lib/python2.5/site-packages/projectname/templates/appname1/template2.html
- /usr/lib/python2.5/site-packages/projectname/templates/appname2/template3.html
- ...
Tous les fichiers ci-dessus existent sur le disque.
Résolu
Cela fonctionne maintenant après avoir essayé :
chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
C'est étrange. Je n'ai pas besoin de faire cela sur le serveur distant pour que cela fonctionne.