我的本地機器在Ubuntu 8.10上運行Python 2.5和Nginx,Django由最新開發主幹構建。Django TemplateDoesNotExist?
對於每一個我請求URL,它拋出:
TemplateDoesNotExist at /appname/path appname/template_name.html Django tried loading these templates, in this order: * Using loader django.template.loaders.filesystem.function: * Using loader 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
?奇怪的是這個文件存在於磁盤上。爲什麼Django無法找到它?
我使用Ubuntu 9.04上的Python 2.6在遠程服務器上運行相同的應用程序,但沒有出現此類問題。其他設置相同。
在我的本地計算機上是否有任何配置錯誤,或者可能導致我應該查看的這些錯誤?
在我的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'),
)
它shoule尋找下列文件
/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/*
很奇怪。我不需要在遠程服務器上執行此操作來使其工作。
是否您的TEMPLATE_DIRS可由Web服務器讀取? – 2009-12-18 03:23:55
@Jordan,TEMPLATE_DIRS可由root訪問就足夠了。這是它在正在工作的遠程服務器上配置的。 – jack 2009-12-18 03:46:17