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 phát triển mới nhất.
Đối với mỗi URL tôi yêu cầu, nó sẽ ném:
TemplateDoesNotExist tại / appname / path appname / template_name.html
Django đã thử tải các mẫu này, theo thứ tự sau: * Sử dụng trình tải django.template.loaders.filesystem.feft: * Sử dụng trình tải django.template.loaders.app_directories.feft:
TEMPLATE_DIRS ('/usr/lib/python2.5/site-packages/projectname/temsheet',)
Có phải nó đang tìm kiếm /usr/lib/python2.5/site-packages/projectname/temsheet/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ột máy chủ từ xa với Python 2.6 trên Ubuntu 9.04 mà không gặp vấn đề như vậy. Các cài đặt khác đều giống nhau.
Có bất cứ điều gì được định cấu hình sai trên máy cục bộ của tôi không, hoặc điều gì có thể gây ra những lỗi như vậy mà tôi nên xem xét?
Trong phần cài đặt của tôi , tôi đã chỉ đị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ó sẽ được tìm kiếm các tập tin sau:
- /usr/lib/python2.5/site-packages/projectname/temsheet/appname1/template1.html
- /usr/lib/python2.5/site-packages/projectname/temsheet/appname1/template2.html
- /usr/lib/python2.5/site-packages/projectname/temsheet/appname2/template3.html
- ...
Tất cả các tập tin trên tồn tại trên đĩa.
Đã giải quyết
Nó hoạt động ngay sau khi tôi thử:
chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
Nó thật kì 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.