Python 2.7/mod_wsgi 3.3 を使用して Django 1.2.5 を実行している Django サイトを運用しています。ほとんどの場合、すべてがうまく機能しますが、サイトが完全にランダムにエラーをスローしているようです. それらはすべて次の形式で終わります。
テンプレートが存在しません: xxx
これらのテンプレートは確かに存在し、例外の原因となった URL を入力すると、その URL は常に機能しているように見えます。ただし、約 30 ページ ビューごとに 1 回、このエラーがスローされます。
同様の問題に関するこの投稿を見つけました: http://leequerv.blogspot.com/2009/11/re-settingspy-seems-to-be-cached-or_24.htmlしかし、私はDjangoアプリケーションを1つしか実行していないので、そうではありません'直接適用されるようです。
サイトのサブドメインに応じてテンプレート ディレクトリを交換するサブドメイン ミドルウェアを使用しています (つまり、サブドメインがない場合は通常のテンプレート ディレクトリを使用し、m.xxx サブドメインがある場合はモバイル テンプレート ディレクトリを使用します)。これらの散発的な本番サーバーエラーを除いて、これらはすべて、開発サーバーと本番サーバーの両方でうまく機能します。多くの人がサイトを使用しているときに競合状態が発生している可能性はありますか?
何が原因なのか、どこから調べればよいのか、何か考えはありますか?
編集:
テンプレート ディレクトリが切り替えられるミドルウェア コードの一部を次に示します。
subdomain = getattr(request, 'subdomain', False)
if subdomain is not False:
try:
request.urlconf = settings.SUBDOMAIN_URLCONFS[subdomain]
except KeyError:
pass
try:
settings.TEMPLATE_DIRS = settings.SUBDOMAIN_TEMPLATE_DIRS[subdomain]
except KeyError:
pass
テンプレートディレクトリ情報を保持する私の設定ファイルの一部は次のとおりです。
SUBDOMAIN_URLCONFS = {
None: 'my_site.urls',
'm': 'mobile.urls'
}
JQM_TEMPLATE_DIRS = (
os.path.join(PROJECT_DIR, "templates/mobile/"),
)
SUBDOMAIN_TEMPLATE_DIRS = {
None: TEMPLATE_DIRS,
'm': JQM_TEMPLATE_DIRS
}
編集#2:
これが私のトレースバックです:
Traceback (most recent call last):
File "/home/my_username/webapps/my_site/lib/python2.7/django/core/handlers/base.py", line 100, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/my_username/python-environments/my_site/lib/python2.7/site-packages/endless_pagination/decorators.py", line 55, in decorated
return view(request, *args, **kwargs)
File "/home/my_username/webapps/my_site/my_site/local_apps/team/views.py", line 68, in team_detail
return render_to_response(template, context, context_instance=RequestContext(request))
File "/home/my_username/webapps/my_site/lib/python2.7/django/shortcuts/__init__.py", line 20, in render_to_response
return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/home/my_username/webapps/my_site/lib/python2.7/django/template/loader.py", line 181, in render_to_string
t = get_template(template_name)
File "/home/my_username/webapps/my_site/lib/python2.7/django/template/loader.py", line 157, in get_template
template, origin = find_template(template_name)
File "/home/my_username/webapps/my_site/lib/python2.7/django/template/loader.py", line 138, in find_template
raise TemplateDoesNotExist(name)
TemplateDoesNotExist: team_detail.html