相关疑难解决方法(0)

Django TemplateDoesNotExist?

我的本地机器在Ubuntu 8.10上运行Python 2.5和Nginx,Django是从最新的开发中继构建的.

对于我请求的每个URL,它会抛出:

TemplateDoesNotExist位于/​​ appname/path appname/template_name.html

Django尝试按以下顺序加载这些模板:*使用loader django.template.loaders.filesystem.function:*使用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'),
)
Run Code Online (Sandbox Code Playgroud)

它应该寻找以下文件:

  • /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/*
Run Code Online (Sandbox Code Playgroud)

真奇怪.我不需要在远程服务器上执行此操作以使其工作.

django

135
推荐指数
9
解决办法
21万
查看次数

标签 统计

django ×1