Minha máquina local está executando o Python 2.5 e o Nginx no Ubuntu 8.10, com o Django construído a partir do tronco de desenvolvimento mais recente.
Para cada URL que eu solicitar, ele lança:
TemplateDoesNotExist em / appname / path appname / template_name.html
O Django tentou carregar esses modelos, nesta ordem: * Usando o carregador django.template.loaders.filesystem.function: * Usando o carregador django.template.loaders.app_directories.function:
TEMPLATE_DIRS ('/usr/lib/python2.5/site-packages/projectname/templates',)
Ele está procurando /usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html neste caso? O estranho é que esse arquivo existe no disco. Por que o Django não pode localizá-lo?
Eu executo o mesmo aplicativo em um servidor remoto com Python 2.6 no Ubuntu 9.04 sem esse problema. Outras configurações são as mesmas.
Existe algo mal configurado na minha máquina local ou o que poderia ter causado esses erros nos quais eu deveria procurar?
No meu settings.py , especifiquei:
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'),
)
Ele deve procurar os seguintes arquivos:
- /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
- ...
Todos os arquivos acima existem no disco.
Resolvido
Funciona agora depois que eu tentei:
chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
É estranho. Não preciso fazer isso no servidor remoto para fazê-lo funcionar.