Máy cục bộ của tôi đang chạy Python 2.5 và Nginx trên Ubuntu 8.10, với Django được xây dựng từ thân cây phát triển mới nhất.Django TemplateDoesNotExist?
Đối với mỗi URL tôi yêu cầu, nó ném:
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',)
Có tìm kiếm /usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html
trong trường hợp này? Điều kỳ lạ là tập tin này tồn tại trên đĩa. Tại sao Django không thể định vị nó?
Tôi chạy cùng một ứng dụng trên máy chủ từ xa với Python 2.6 trên Ubuntu 9.04 mà không có sự cố như vậy. Các cài đặt khác giống nhau.
Có bất kỳ điều gì được định cấu hình sai trên máy cục bộ của tôi hay những lỗi có thể gây ra lỗi mà tôi nên xem xét?
Trong settings.py của tôi, tôi đã xác định:
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'),
)
Nó shoule thể tìm kiếm các tập tin sau đây
/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 ...
Tất cả các tập tin trên tồn tại trên đĩa.
SOLVED
Nó hoạt động bây giờ sau khi tôi đã cố gắng chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
Đó là lạ. Tôi không cần phải làm điều này trên máy chủ từ xa để làm cho nó hoạt động.
TEMPLATE_DIRS của bạn có thể đọc được bởi máy chủ web không? –
@Jordan, TEMPLATE_DIRS có thể truy cập bằng thư mục gốc là đủ. Đó là những gì nó được cấu hình trên máy chủ từ xa đang hoạt động. – jack