У меня есть приложение, которое развернуто на 15 сайтах и работает в течение 6 лет. Все эти развертывания - с django 1.5, python 2.6, CentOS6 и apache, и все они работают отлично. Я только что развернул приложение на новом сайте, но это django 1.9, python 2.7, CentOS7 и nginx/uwsgi. Только на этом сайте мы видим прерывистые ошибки «шаблон не найден». Обновление страницы всегда работает. Это происходит с разными шаблонами, и в любом из журналов ошибок нет (кроме ошибки, не найденной шаблоном). Я проверил системные журналы, журналы nginx, журналы uwsgi и журналы django.Django: Intermittent 'шаблон не найден'
Кто-нибудь знает, почему это происходит, и/или как я могу отладить его дальше?
Одна вещь, которую я заметил, и это может быть нормально, но я не знаю, поскольку я никогда не сталкивался с этой ошибкой раньше, заключается в том, что в шаблоне не найдена ошибка, когда она перечисляет каталоги, которые она искала, все они в/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',
],
},
},
]
Шаблон он ищет делает Exis t при /usr/local/motor/motor/app/cdsem/templates/WaferToWafer/view.html
Когда я получу ошибку, если обновить страницу, она работает.
Не могли бы вы отобразить полный список каталогов, которые искали при ошибке? Также заданы настройки 'TEMPLATES' (или эквивалентные настройки шаблонов старого стиля)? –
Много изменилось между 1.5 и 1.9, поэтому было бы трудно ожидать, что он просто работает. В любом случае, попробуйте создать [mcve]. – Sayse
У меня нет удаленного доступа к этому сайту, поэтому мне придется идти на сайт и попытаться воссоздать ошибку. Это будет не до следующей недели. Я знаю, что многое изменилось с 1,5 до 1,9, поскольку мне пришлось внести много изменений в код для обновления версии. Это не «просто работало» - много времени, когда в него. И было проведено много испытаний, а также запущен набор тестов регрессии. Создание минимального примера будет очень сложным, так как это очень большое приложение, и эта ошибка очень прерывистая. –