2014-11-17 3 views
0

404 및 500 오류에 대해 다른 오류 페이지를 갖고 싶습니다. 어떻게해야합니까?404 및 500 상태에 대한 사용자 정의 오류 페이지

프로덕션 환경에서만 작동합니다. 나뭇 가지 오류 템플릿을 무시하고 app/Resources/TwigBundle/views/Exception 폴더에 넣었습니다. 그것이 첫 번째 파일을 열 것이며, 다른 경우는 다른 하나를 열 것 (404)의 경우

error404.html.twig 
exception_full.html.twig 

이 방법 :

나는이 두 파일을 창조하고 싶었다. 그것이 내가 확장 할 수 없습니다
  • 존재하지 않는 경우

    • 첫 번째 파일은 ... 404 오류에만 두 번째가 열립니다 결코 및 심포니 기본 :

      나는 그래도 문제가 몇 가지있다 ({% extends '::layout.html.twig' %}) 기본 템플릿이 없기 때문에 템플릿을 사용하면 템플릿이로드되지 않습니다.

    제안 사항이 있으십니까?

    감사합니다.

  • +0

    이 답변에 따르면 http://stackoverflow.com/a/12675355/4074148 사용자 정의 오류 페이지는 prod env에만 표시됩니다. prod env에서 테스트하여 사용자 정의 페이지가 있는지 확인 했습니까? – Veve

    +0

    내가 말했듯이, 나는 prod env를 사용한다;) – khernik

    +0

    내 잘못, 미안 : P – Veve

    답변

    0

    exception_full.html.twig 파일 이름을 error.html.twig으로 변경하십시오. 그것은 나를 위해 일하고있다. 여러 개의 error4xx 파일이 있는데 특정 코드를 정의하지 않은 경우 해당 예외가 발생하면 error.html.twig보기가 표시됩니다.

    기본 템플릿을 표시하지 않는 경우 정확히 기본 템플릿은 어디에 있습니까? '::layout.html.twig' 구문을 사용하는 경우 layout.html.twig는 app/Resources/views/layout.html.twig에 있어야합니다. 이 경우로드되지 않는 이유를 설명하는 오류가 발생합니다.

    좀 더 자세한 정보는 docs을 참조하십시오.

    +0

    'layout.html.file'이 정확한 위치에 있기 때문에 그것이 이상하다고 생각합니다. 또한 사용자 정의 나뭇 가지 함수는 예외 처리를 차단합니다. – khernik

    +0

    오, 알겠습니다! 예외를 처리하지는 않습니다. 레이아웃 템플릿 안에'app.user.username' 변수가 있기 때문입니다. 왜 그런 일이 일어날까요? – khernik

    +0

    사용자가 로그인하지 않으면'app.user.username'을 사용하면 항상 예외가 발생합니다. 당신은'{if if app.user %}와 비슷한'if' 문을 가지고 있어야합니다. app.user.username {% endif %}' – Sehael

    관련 문제