我的本地机器在Ubuntu8.10上运行Python2.5和Nginx,Django是从最新的开发主干构建的.
对于我请求的每个URL,它都抛出:
TemplateDoesNotExist位于/appname/path appname/template_name.html
Djangotry 按以下顺序加载这些模板: *使用loader django.template.loaders.filesystem.function: *使用加载器django.template.loaders.app_directories.function:
模板_目录 ((‘/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/站点包/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
- ...
以上所有文件都存在于磁盘上.
Solved
在我try 之后,它现在起作用了:
chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
这很奇怪.我不需要在远程服务器上执行此操作即可使其工作.