我有一个应用程序部署在15个站点并已运行了6年。所有这些部署都使用django 1.5,python 2.6,CentOS6和apache,它们都运行良好。我刚刚在一个新站点部署了应用程序,但这个是django 1.9,python 2.7,CentOS7和nginx / uwsgi。只有在这个网站,我们才会看到间歇性的“模板未找到”错误。刷新页面始终有效。它发生在不同的模板中,并且任何日志中都没有错误(模板未找到错误除外)。我检查了系统日志,nginx日志,uwsgi日志和django日志。
任何人都知道为什么会发生这种情况,和/或我如何进一步调试它?
有一件事我注意到了,这可能是正常的,但我不知道因为我以前从未遇到过这个错误,是在模板找不到错误时它列出了它搜索到的目录,它们都在/ tmp目录。例如,如果模板位于/usr/local/foo/bar/templates/baz/template.html中,则错误中的搜索路径将包含/ tmp / foo / bar / templates / baz。这有问题的迹象吗?
根据要求提供更多信息:
错误:
TemplateDoesNotExist at /report/CDSEM/WaferToWafer/
WaferToWafer/view.html
模板搜索:
Template-loader postmortem
Django tried loading these templates, in this order:
Using engine django:
django.template.loaders.filesystem.Loader: /usr/local/motor/motor/ui/templates/WaferToWafer/view.html (Source does not exist)
django.template.loaders.app_directories.Loader: /usr/lib/python2.7/site-packages/django/contrib/admin/templates/WaferToWafer/view.html (Source does not exist)
django.template.loaders.app_directories.Loader: /usr/lib/python2.7/site-packages/django/contrib/auth/templates/WaferToWafer/view.html (Source does not exist)
django.template.loaders.app_directories.Loader: /tmp/core/alerts/templates/WaferToWafer/view.html (Source does not exist)
django.template.loaders.app_directories.Loader: /tmp/core/reports/templates/WaferToWafer/view.html (Source does not exist)
django.template.loaders.app_directories.Loader: /tmp/app/cdsem/templates/WaferToWafer/view.html (Source does not exist)
django.template.loaders.app_directories.Loader: /tmp/app/semvision/templates/WaferToWafer/view.html (Source does not exist)
django.template.loaders.app_directories.Loader: /tmp/app/developer/templates/WaferToWafer/view.html (Source does not exist)
django.template.loaders.app_directories.Loader: /tmp/ui/templates/WaferToWafer/view.html (Source does not exist)
django.template.loaders.app_directories.Loader: /tmp/configuration/templates/WaferToWafer/view.html (Source does not exist)
来自设置的模板:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'motor/ui/templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'context_processors.config',
'ui.context_processors.navigation',
'core.appmngr.context_processor',
],
},
},
]
它正在搜索的模板确实存在于/usr/local/motor/motor/app/cdsem/templates/WaferToWafer/view.html
当我刷新页面时出现错误,它可以正常工作。
答案 0 :(得分:0)
我通过在TEMPLATES dict中明确列出模板dirs来“修复”这个问题。仍然不知道为什么我必须在这一个网站上这样做。