我正在使用django 1.1.4和python 2.6.6与mod_wsgi建立一个网站
客户希望404和500页面具有他的徽标和主页链接。我写了简单的页面。它大于512字节。我已经调整了PROJECT_ROOT / templates /
中的文件如果我将debug设置为True
,则错误表明它是404错误。但当我将其设置为False
并尝试加载不存在的页面时,我收到内部服务器错误,如下所示:
内部服务器错误
服务器遇到内部错误或配置错误 无法完成您的请求。
请联系服务器管理员root @ localhost并告知 他们发生错误的时间,以及你可能做过的任何事情 可能导致错误。
有关此错误的详细信息可能在服务器错误中可用 登录。 Apache / 2.2.15(CentOS)服务器,网址为www.anglais-verbe.com端口80
我该怎么办?
我没有写过处理404,500的任何观点或对urls.py进行了更改。
这是我第一个完全成熟的django项目,我不确定会出现什么问题。
更新
我的管理员追溯电子邮件是
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'
答案 0 :(得分:2)
您可以在主urls.py中设置404处理程序:
handler404 = 'yourproject.views.file_not_found_404'
然后你必须在views.py中创建以下视图:
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错误
答案 1 :(得分:1)
404.html
和500.html
debug=FALSE
,则默认的Django行为是向管理员发送电子邮件。追溯说的是什么?如果您没有此电子邮件,请查看apache错误日志以查看是否有任何线索。在Debian上(我不知道CentOS在我的头顶),假设apache2,位置是
tail /var/log/apache2/error.log