我的本地机器在Ubuntu 8.10上运行Python 2.5和Nginx,Django由最新开发主干构建。Django TemplateDoesNotExist?
对于每一个我请求URL,它抛出:
TemplateDoesNotExist at /appname/path appname/template_name.html Django tried loading these templates, in this order: * Using loader django.template.loaders.filesystem.function: * Using loader django.template.loaders.app_directories.function: TEMPLATE_DIRS ('/usr/lib/python2.5/site-packages/projectname/templates',)
它是在这种情况下,寻找/usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html
?奇怪的是这个文件存在于磁盘上。为什么Django无法找到它?
我使用Ubuntu 9.04上的Python 2.6在远程服务器上运行相同的应用程序,但没有出现此类问题。其他设置相同。
在我的本地计算机上是否有任何配置错误,或者可能导致我应该查看的这些错误?
在我的settings.py,我指定:
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'),
)
它shoule寻找下列文件
/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 ...
上述所有文件是否存在磁盘上。
解决
它的工作原理后,现在我想chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
很奇怪。我不需要在远程服务器上执行此操作来使其工作。
是否您的TEMPLATE_DIRS可由Web服务器读取? – 2009-12-18 03:23:55
@Jordan,TEMPLATE_DIRS可由root访问就足够了。这是它在正在工作的远程服务器上配置的。 – jack 2009-12-18 03:46:17