Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django on nginx&;apache:在哪里处理404&;500错误?_Django_Apache_Nginx_Http Status Code 404 - Fatal编程技术网

django on nginx&;apache:在哪里处理404&;500错误?

django on nginx&;apache:在哪里处理404&;500错误?,django,apache,nginx,http-status-code-404,Django,Apache,Nginx,Http Status Code 404,我知道django中有404错误处理。 但是把配置放在nginx中更好吗 此ST线程具有放置它的解决方案- http://stackoverflow.com/questions/1024199/nginx-customizing-404-page 使用nginx时,每个人都是这样处理的吗? 我已经在站点主题中创建了自己的404.html和500.html,希望显示它们 我建议使用in-Django 404/500处理程序。您可以以与站点其他部分一致的页面样式提供有意义的备选导航建议 确保您不会返

我知道django中有404错误处理。 但是把配置放在nginx中更好吗

此ST线程具有放置它的解决方案-
http://stackoverflow.com/questions/1024199/nginx-customizing-404-page

使用nginx时,每个人都是这样处理的吗?

我已经在站点主题中创建了自己的404.html和500.html,希望显示它们

我建议使用in-Django 404/500处理程序。您可以以与站点其他部分一致的页面样式提供有意义的备选导航建议


确保您不会返回一个谈论错误但显示200返回状态的页面——人类会理解这是一个错误,但编程访问不会。我在这里避免说“搜索引擎”,但事实是,它们可能会代表98%以上的非人类访客。有关详细信息,请参阅。

您没有提到将这些页面放入Nginx服务器的任何原因。我建议将其保存在站点的其余部分,即Django服务器上。将站点的一部分移动到Nginx服务器是解决可伸缩性问题的好主意,但会使部署复杂化。我当然希望你不会看到你网站的流量中有很大一部分进入你的错误页面

我不知道如何在django中配置404&500错误。 感谢帮助我的“namnatulco”

以下是步骤:

  • 创建两个页面
    404.html
    500.html
  • 将它们放在模块模板文件夹中
  • 在模块
    url.conf
    中,输入以下两行:

    handler404 = "myproject.mymodule.views.redirect_page_not_found" handler500 = "myproject.mymodule.views.redirect_500_error" handler404=“myproject.mymodule.views.redirect\u页面\u未找到” handler500=“myproject.mymodule.views.redirect\u 500\u错误”
  • 在您的视图中,定义函数

    def redirect_page_not_found(request): return render_to_response('logreg/404.html', {}, context_instance=RequestContext(request)); def redirect_500_error(request): return render_to_response('logreg/500.html', {}, context_instance=RequestContext(request)); def重定向页面未找到(请求): 返回render_to_响应('logreg/404.html',{},context_实例=RequestContext(request)); def重定向_500_错误(请求): 返回render_to_响应('logreg/500.html',{},context_实例=RequestContext(request));
  • 通过给出一些不正确的URL来测试它,例如-
    www.mydomain.com/aaaaaaaa

  • 要测试500错误,请在视图内部的
    呈现到\u响应中提供错误的URL

  • 就这样。你应该被设置。

    特别是对于404页,使用django显示它对我来说更有意义,因为我发现在上面有一个导航很有用,它是使用django提供的功能(例如模板标签)生成的。我的想法是不在django中添加任何逻辑。如果发生404,Web服务器应该检测到它并显示我的静态页面。500也一样。谢谢,这是有道理的,而且#django上的人帮助我了解到我可以很好地定制它。我将在下面介绍如何实现它。但我会选择这个作为答案。