Моя локальная машина работает под управлением Python 2.5 и Nginx в Ubuntu 8.10, а Django собран из последней ствола разработки.
Для каждого URL, который я запрашиваю, выдается:
TemplateDoesNotExist в / appname / path appname / template_name.html
Django попытался загрузить эти шаблоны в следующем порядке:
* Использование загрузчика django.template.loaders.filesystem.function:
* Использование загрузчика django.template.loaders.app_directories.function:
TEMPLATE_DIRS
( '/Usr/lib/python2.5/site-packages/projectname/templates',)
Ищет ли / usr / lib / python2.5 / site-packages / имя проекта / templates / appname / template_name.html в этом случае? Странно то, что этот файл существует на диске. Почему Джанго не может найти его?
Я запускаю то же самое приложение на удаленном сервере с Python 2.6 в Ubuntu 9.04 без такой проблемы. Остальные настройки такие же.
Есть ли что-то неправильно настроенное на моей локальной машине, или что могло вызвать такие ошибки, на которые я должен обратить внимание?
В моем 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 / Библиотека / python2.5 / сайт-пакеты / имя_проекта / шаблоны / appname1 / template1.html
- / USR / Библиотека / python2.5 / сайт-пакеты / имя_проекта / шаблоны / appname1 / template2.html
- / USR / Библиотека / python2.5 / сайт-пакеты / имя_проекта / шаблоны / appname2 / template3.html
- ...
Все перечисленные файлы существуют на диске.
решаемые
Теперь работает после того, как я попробовал:
chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
Странно. Мне не нужно делать это на удаленном сервере, чтобы он работал.