Моя локальна машина працює під управлінням 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/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/*
Це дивно. Мені не потрібно робити це на віддаленому сервері, щоб він працював.