Моя локальная машина работает под управлением Python 2.5 и Nginx в Ubuntu 8.10, с Django, созданным на основе последних разработок.
Для каждого URL, который я запрашиваю, он выдает:
TemplateDoesNotExist в /appname/путь 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/projectname/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/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/*
Это странно. Мне не нужно делать это на удаленном сервере, чтобы заставить его работать.