2012-01-09 4 views
0

Я использую Django 1.1.4 и Python 2.6.6 с mod_wsgi, чтобы создать веб-сайтстраница Джанго ошибка не показывая

Клиент хочет 404 и 500 страниц, чтобы его логотип и домашней страницы ссылку. Я написал простые страницы. Его больше 512 байт. Я проделал файлы в PROJECT_ROOT/templates/

, если я установил отладочную ошибку True, ошибка говорит о ее ошибке 404. но когда я поставил его, чтобы быть False и попытаться загрузить страницу, которая не существует Я получаю внутреннюю ошибку сервера, которая выглядит следующим образом:

Внутренней ошибка сервера

Сервер обнаружил внутреннюю ошибку или некорректный и был не в состоянии заполнить ваш запрос.

Обратитесь к администратору сервера root @ localhost и сообщите о том, что произошла ошибка, и все, что вы, возможно, сделали , что могло привести к ошибке.

Дополнительная информация об этой ошибке может быть доступна на сервере error log. Apache/2.2.15 (CentOS) Server по адресу: www.anglais-verbe.com Порт 80

Что мне делать?

Я не написал никаких просмотров для обработки 404, 500 или не внесенных изменений в urls.py.

Это мой первый полноценный проект django, и я не уверен, что происходит не так.

Update:

Мой администратор отслеживающий электронная почта

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

вы можете установить обработчик ошибок 404 в главном urls.py:

handler404 = 'yourproject.views.file_not_found_404' 

, то вы должны создать следующий вид из ваших представлений.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

+0

Вы не * есть * установить 'handler404', если вы хотите сделать что-то особый. По умолчанию поведение Django отлично подходит для большинства случаев. – Alasdair

+0

, может быть, просто посмотрите здесь ... https://docs.djangoproject.com/ru/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, расположение

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

Клиент предоставил мне очень мало доступа. и/var/log/не имеет каталога apache2. Я могу создать администратора. Получу ли я письмо? –

+0

Вам нужно добавить свое сообщение в настройку ['ADMINS' (https://docs.djangoproject.com/en/dev/ref/settings/#admins), а затем перезапустить apache. – Alasdair

+0

Я обновил вопрос с помощью моей трассировки по электронной почте> –

Смежные вопросы