0

エラー用のカスタム 404.html ページを作成しようとしていHTTP 404ます。

この URL127.0.0.1:8000/polls/Books/dsfdsf/では、Page not found (404)デフォルトのデバッグ ページが表示されますが、DEBUG=True. 同じ URL に対して、カスタム 404 ページを作成したいと考えています。

私はこれについてDjango Docsを調べました。

私が取った次の手順:

1)。settings.pyDEBUG=False

2)。urls.pyhandler404 = 'pollsite.views.custom_404'

3)。ビュー.py

def custom_404(request):
    return render('404.html', context_instance=RequestContext(request))

4)。私は404.htmlテンプレートディレクトリにファイルを置きました、TEMPLATE_DIRS

404.html127.0.0.1:8000/polls/Books/dsfdsf にアクセスしようとすると、カスタム エラー ページが表示されるはずですよね? 代わりに私はTemplateDoesNotExist: 500.html

を示す有効な URL でさえ、 TemplateDoesNotExist: 500.html

HTTP 404 エラーが生成されず、カスタム404.htmlファイルが呼び出されないのはなぜですか?

question1question2に記載されている解決策を試しまし たが、それでも迷惑なエラーが発生しますTemplateDoesNotExist: 500.html

何が問題なのか指摘してください。

EDIT:エラーのstacktarce

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 241, in __call__
    response = self.get_response(request)
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 153, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 228, in handle_uncaught_exception
    return callback(request, **param_dict)
  File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py", line 91, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/views/defaults.py", line 32, in server_error
    t = loader.get_template(template_name) # You need to create a 500.html template.
  File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py", line 145, in get_template
    template, origin = find_template(template_name)
  File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py", line 138, in find_template
    raise TemplateDoesNotExist(name)
TemplateDoesNotExist: 500.html

.........................解決策:

1) settings.pyセットでALLOWED_HOSTS = ['127.0.0.1']

2)views.pyで return render_to_response('404.html')

4

1 に答える 1

0

settings.py には次の設定があります。

 ALLOWED_HOSTS = []

もしそうならDebug = False、Django は を見ALLOWED_HOSTSます。この設定には、IP アドレスを含める必要があります。次のように設定することもできます。

 ALLOWED_HOSTS = ['*']

これは開発環境では正常に機能しますが、本番環境では使用しないでください。これはおそらくあなたの問題であり、500.htmlそのページを読み込もうとすると Django がサーバー エラーをスローする理由です。

于 2013-10-08T23:10:58.250 に答える