내 애플리케이션에서 404 오류 페이지를 맞춤 설정하려고합니다. 가능한 많은 솔루션을 검색 한 후 404.html 템플릿을 만들고 HTTP 오류 404를 처리하고 urls.py를 편집해야하는 메소드를 추가했습니다.맞춤 404 django 템플릿
그러나 나는 정말로 잘못된 것을하고 있다고 생각합니다. 내 로그에 잘못된 구문 오류가있어서 해결할 수 없습니다.
내 views.py :
# HTTP Error 400
def page_not_found(request):
response = render_to_response('404.html',context_instance=RequestContext(request))
response.status_code = 404
return response
그리고 구문 오류 :
Traceback (most recent call last):
File "/.../myenv/lib/python3.4/site-packages/django/core/urlresolvers.py", line 393, in urlconf_module
return self._urlconf_module
AttributeError: 'RegexURLResolver' object has no attribute '_urlconf_module'
...
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "/home/dcaled/work/portal-interface/portal/urls.py", line 12
handler404 = 'views.handler404'
^
SyntaxError: invalid syntax
이 사람이 무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까
? 감사합니다. .업데이트 : @Alasdair 제안을 마친 후에 몇 가지 수정과 수정을했습니다. 오류가 중지되었습니다.
지금, 내 urls.py는 같다 :handler404 = 'views.page_not_found'
urlpatterns = [
url(r'^$', views.home),]
그러나이 아닌 기존의 페이지에 액세스 할 때 나는 아직도 내 사용자 지정으로 404.html을하지 않습니다. 대신, 기본 페이지는이 메시지와 함께로드됩니다. "
가 요청 된 URL/URL/404이 서버에서 찾을 수 없습니다 찾을 수 없음 "
또한
, 내 settings.py :DEBUG = False
ALLOWED_HOSTS = ['*']
TEMPLATE_DIRS = (os.path.join(BASE_DIR , 'portal/templates'),)
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
내 프로젝트 트리 :
├── fb_dev
│ ├── __init__.py
│ ├── __pycache__
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
│
└── portal
├── admin.py
├── forms.py
├── json
├── migrations
├── models.py
├── static
├── templates
│ ├── 404.html
│ └── portal
│ ├── base.html
│ ├── home.html
├── templatetags
├── urls.py
└── views.py
어떤 장고 버전을 사용하고 있습니까? '404.html' 템플릿은 어디에 위치해 있습니까? – Alasdair
내 버전은 1.8.5입니다. 그리고 템플릿 위치로 질문을 업데이트했습니다. – revy
'템플레이트'설정이 있습니까? 코드의 다른 부분이'portal/templates'에서 템플릿을 성공적으로 찾을 수 있습니까? 404 페이지를 하이재킹하는 것은 귀하의 [브라우저] (http://stackoverflow.com/questions/2642340/django-404-page-not-showingup) 또는 귀하의 서버 (예 : Apache) 일 수 있습니까? – Alasdair