2012-01-09 8 views
0

を示す私はウェブサイトDjangoのエラーページが

を構築するためのmod_wsgiでDjangoの1.1.4とPython 2.6.6を使用していたクライアントは、彼のロゴとホームページのリンクを持っている404と500ページを望んでいません。私は簡単なページを書いた。そのサイズは512バイト以上です。 PROJECT_ROOT/templates/

Trueにデバッグを設定すると、404エラーが表示されます。私はFalseになると、私はこのようになります内部サーバーエラーを取得し存在しないページをロードしようとし、それを設定したとき:

サーバが内部エラーや設定ミスが発生した

内部サーバーエラー はリクエストを完了できませんでした。

サーバー管理者のroot @ localhostに連絡して、エラーが発生した時刻とエラーを発生させた可能性のあるものを に通知してください。

このエラーの詳細については、サーバーエラー ログに記載されている場合があります。 Apache/2.2.15(CentOS)Server(www.anglais-verbe.com)ポート80

どうすればよいですか?

私は、404、500を処理するためのビューを作成していないか、またはurls.pyに変更を加えました。

これは私の最初の本格的なジャンゴプロジェクトです。何がうまくいかないのか分かりません。

更新:

私の管理者のトレースバックのメールが

File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py", line 125, in get_response 
    callback, param_dict = resolver.resolve404() 

File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 267, in resolve404 
    return self._resolve_special('404') 

File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 259, in _resolve_special 
    callback = getattr(self.urlconf_module, 'handler%s' % view_type) 

AttributeError: 'module' object has no attribute 'handler404' 

答えて

2

であるあなたは、あなたのメインのurls.pyに404ハンドラを設定できます

handler404 = 'yourproject.views.file_not_found_404' 

、あなたが作成する必要がありますあなたのビューのビューは次のとおりです:

from django.shortcuts import render_to_response 
from django.template import RequestContext 

def file_not_found_404(request): 
    #create some variables here if you like 
    path = request.path 
    response = render_to_response('404.html', locals(), 
           context_instance=RequestContext(request)) 
    response.status_code = 404 
return (response) 

、あなたはテンプレートのフォルダに404用のテンプレートを作成することができます。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>404 Not Found</title> 
</head><body> 
<h1>Not Found</h1> 
<p>The requested URL {{ path }} was not found on this server.</p> 
<hr> 
<address>Apache/2.2.3 (CentOS) Server at yourdomain.com port 80</address> 
</body></html> 

・ホープこのことができます:) をこれも500エラー

+0

です特別。ほとんどの場合、デフォルトのDjangoの動作は問題ありません。 – Alasdair

+0

多分ちょうどここに見てください... https://docs.djangoproject.com/en/dev/intro/tutorial03/#write-a-404-page-not-found-view – Jingo

+0

ありがとう、たくさんの男。それは働いた:) –

1
  1. ダブルチェックに似を動作するはずです、あなたのことをテンプレートファイルの名前は404.htmlとなります。500.html
  2. debug=FALSEの場合、デフォルトのDjangoの動作は管理者に電子メールを送信することです。トレースバックは何を言いますか?
  3. このメールがない場合は、Apacheのエラーログを調べて、手がかりがあるかどうかを確認してください。Debianの(私は私の頭の上からCentOSのを知っていない)で、apache2のを想定し、場所は、あなたが何かをしたい場合を除きあなたは* `handler404`を設定する*ていません

    tail /var/log/apache2/error.log 
    
+0

クライアントは私にほとんどアクセスを与えている。/var/log /にはapache2ディレクトリはありません。私は管理者を作成することができます。私は電子メールを受け取りますか? –

+0

あなたのメールアドレスを['ADMINS'](https://docs.djangoproject.com/ja/dev/ref/settings/#admins)に追加し、Apacheを再起動する必要があります。 – Alasdair

+0

電子メールから私のトレースバックで質問を更新しました> –