私のローカルマシンは、Ubuntu 8.10でPython 2.5とNginxを実行しており、Djangoは最新の開発トランクからビルドされています。
私が要求するすべてのURLに対して、それはスローします:
/ appname / path appname / template_name.htmlのTemplateDoesNotExist
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を探していますか?奇妙なことに、このファイルはディスク上に存在します。なぜ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'),
)
次のファイルを探しているはずです。
- /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/*
それは変だ。これを動作させるためにリモートサーバーでこれを行う必要はありません。