【问题标题】:custom 404 error page in django 1.5django 1.5 中的自定义 404 错误页面
【发布时间】:2014-04-07 02:00:19
【问题描述】:

我试图在我的 django 网站上开发一个自定义的 404 错误页面。我按照link 实现了一切。但是当我尝试使用无效的 url 时出现问题。

TemplateDoesNotExist: 500-page.html

handler500 = 'polls.views.error500' 而不是 mysite.views.error500 为什么它无法识别我的模板。 根据链接,我将 500 页的 html 放在根模板文件夹中。

我的错误

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 "/home/anuj/Envs/estoppeleasy/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 255, in __call__
    response = self.get_response(request)
  File "/home/anuj/Envs/estoppeleasy/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 156, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/home/anuj/Envs/estoppeleasy/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 224, in handle_uncaught_exception
    return callback(request, **param_dict)
  File "/home/anuj/Envs/estoppeleasy/letterproject/estoppeleasy/web/views.py", line 68, in error500
    return render(request,'500-page.html')
  File "/home/anuj/Envs/estoppeleasy/local/lib/python2.7/site-packages/django/shortcuts/__init__.py", line 53, in render
    return HttpResponse(loader.render_to_string(*args, **kwargs),
  File "/home/anuj/Envs/estoppeleasy/local/lib/python2.7/site-packages/django/template/loader.py", line 170, in render_to_string
    t = get_template(template_name)
  File "/home/anuj/Envs/estoppeleasy/local/lib/python2.7/site-packages/django/template/loader.py", line 146, in get_template
    template, origin = find_template(template_name)
  File "/home/anuj/Envs/estoppeleasy/local/lib/python2.7/site-packages/django/template/loader.py", line 139, in find_template
    raise TemplateDoesNotExist(name)
TemplateDoesNotExist: 500-page.html

【问题讨论】:

    标签: django


    【解决方案1】:

    创建名为500.html404.html 的模板并放入root folder of template directory 即可。

    【讨论】:

      【解决方案2】:

      您的模板应命名为500.html404.html 而不是500-page.html。您不需要任何额外的视图。这一切都是开箱即用的。删除您可能已添加到 urls.pysettings.pyviews.py 中与 500 错误有关的所有额外内容。

      只需将500.html 文件放入您的模板根文件夹。 请记住不要扩展您的base.html。创建一个没有任何包含或扩展的全新干净的自运行 html 文件。

      【讨论】:

      • 为什么不扩展base.html?我想我做到了,而且奏效了。这有什么问题?
      • 大多数情况下,您在基础中使用模板标签和东西。如果您在 500 崩溃中运行,通常中间件、上下文处理器等会出现一些问题 - 所以用所有这些东西加载基础是另一个导致 500 页面崩溃的错误。您可以将其用于 404 - 但我不建议将其用于 500。
      猜你喜欢
      • 2013-07-13
      • 2016-04-25
      • 2013-09-16
      • 2015-03-18
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      • 2017-08-07
      相关资源
      最近更新 更多