我的本地计算机在Ubuntu 8.10上运行Python 2.5和Nginx,而Django是从最新的开发主干构建的。
对于我请求的每个URL,都会引发:
TemplateDoesNotExist位于/ appname / path appname / template_name.html
Django尝试按以下顺序加载这些模板:*使用加载程序django.template.loaders.filesystem.function:*使用加载程序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'),
)
它应该寻找以下文件:
- /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/*
真奇怪。我不需要在远程服务器上执行此操作即可使其正常工作。