La mia macchina locale esegue Python 2.5 e Nginx su Ubuntu 8.10, con Django costruito dall'ultimo trunk di sviluppo.
Per ogni URL che richiedo, genera:
TemplateDoesNotExist in / nome app / percorso nome app / nome_modello.html
Django ha provato a caricare questi modelli, in questo ordine: * Utilizzando loader django.template.loaders.filesystem.function: * Utilizzando loader django.template.loaders.app_directories.function:
TEMPLATE_DIRS ('/usr/lib/python2.5/site-packages/projectname/templates',)
Sta cercando /usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html in questo caso? La cosa strana è che questo file esiste sul disco. Perché Django non riesce a trovarlo?
Eseguo la stessa applicazione su un server remoto con Python 2.6 su Ubuntu 9.04 senza tale problema. Altre impostazioni sono uguali.
C'è qualcosa di errato configurato sul mio computer locale o cosa potrebbe aver causato tali errori che dovrei esaminare?
Nel mio settings.py , ho specificato:
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'),
)
Dovrebbe cercare i seguenti file:
- /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
- ...
Tutti i file di cui sopra esistono sul disco.
risolto
Funziona ora dopo che ho provato:
chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
È strano. Non ho bisogno di farlo sul server remoto per farlo funzionare.
