Yerel makinem Ubuntu 8.10'da Python 2.5 ve Nginx kullanıyor, Django en son geliştirme gövdesinden üretildi.
İstediğim her URL için atar:
/ Appname / path appname / template_name.html konumunda TemplateDoesNotExist
Django, bu şablonları şu sırayla yüklemeyi denedi: * Django.template.loaders.filesystem.function yükleyicisini kullanma: * Django.template.loaders.app_directories.function yükleyicisini kullanma:
TEMPLATE_DIRS ('/usr/lib/python2.5/site-packages/projectname/templates',)
Bu durumda /usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html mi arıyor ? Garip olan şey bu dosyanın diskte mevcut olmasıdır. Django neden bulamıyor?
Aynı uygulamayı Ubuntu 9.04'te Python 2.6 ile uzak bir sunucuda böyle bir sorun olmadan çalıştırıyorum. Diğer ayarlar aynı.
Yerel makinemde yanlış yapılandırılmış bir şey var mı veya bakmam gereken bu tür hatalara neden olan ne olabilir?
Benim settings.py , ben belirttim:
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'),
)
Aşağıdaki dosyaları aramalıdır:
- /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
- ...
Yukarıdaki tüm dosyalar diskte bulunur.
çözülmüş
Denedikten sonra şimdi çalışıyor:
chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
Bu garip. Çalışması için bunu uzak sunucuda yapmam gerekmiyor.