我的本地机器运行Python 2.5和Ubuntu 8.10上的Nginx, Django是根据最新的开发主干构建的。
对于我请求的每个URL,它抛出:
TemplateDoesNotExist at /appname/path appname/template_name.html Django尝试加载这些模板,顺序如下: 使用loader django.template.loaders. filessystem .function: 使用loader django.template.loaders.app_directories.function: TEMPLATE_DIRS (“/ usr / lib / python2.5 /网站/ projectname /模板”,)
在这种情况下,它是否在寻找/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 /模板/ appname1 / template1.html /usr/lib/python2.5/site-packages projectname /模板/ appname1 / template2.html /usr/lib/python2.5/site-packages projectname /模板/ appname2 / template3.html ...
以上所有文件都存在于磁盘上。
解决了
在我尝试之后,它现在工作了:
chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
这是奇怪的。我不需要在远程服务器上执行此操作即可使其工作。