2010-06-27 6 views
4

Grails 1.3.1 앱에서 "목록"컨트롤러의 기본 색인 작업을 렌더링하게하려면 404 오류가 필요합니다. 이 컨트롤러는 layouts 디렉토리 (views/layouts/list.gsp)에있는 기존 레이아웃 파일을 사용합니다. 그런 다음 해당 작업에 포함 된 스 니펫 (views/list/index.gsp)을 사용합니다.Grails 레이아웃이 404 UrlMapping에 적용되지 않았습니다.

이 작업을 정상적으로 (http://localhost/list/index) 액세스하면 레이아웃 파일과 스 니펫이 모두 적용되고 올바르게 보입니다. 그러나 UrlMapping 클래스의 404 규칙을 통해 액세스 할 때 - "404"(컨트롤러 : "list", 작업 : "index") - 레이아웃 파일이 사용되지 않고 스 니펫 만 표시됩니다.

왜 이런 일이 발생하는지 알고 있으며, 404 (또는 기타) 오류 매핑을 표시하기 위해 기존 레이아웃을 얻는 방법이 있다면?

+1

이것은 또한 Grails 2.1.0 ... – Tristan

+0

@Tristan에서 문제가되는 것 같습니다. 문제점에 대한 픽스를 찾을 수 있었습니까? – Igor

+1

@Igor 나는 프로젝트를 위해 내가 Grails를하지 않았다고 생각한다. – Tristan

답변

1

는 당신에게 레이아웃이 적용되지 않습니다 확신 당신이 당신의 오류 페이지를 포장 할 수있는 주위의 작품이있다? 나는 Grails 1.3.2를 사용하고 있으며 으로 생각했지만 레이아웃이 적용되지 않았다. 실제로 404 이후의 레이아웃에는 모델 및 보안 태그가 없다.

레이아웃 내용이 그런 것들을 사용할 수 있다면 먼저 "Hello world"를 시도해보십시오.

5

나는 SiteMesh Grails 버전에서 버그가 있었던 것을 알고 있습니다. 대신 평소 사용하는

<g:applyLayout name="main"> 
</g:applyLayout> 

:

<meta name="layout" content="main" /> 
2

찾아야 할 또 다른 사항은 sitemesh.xml 구성 파일입니다. Sitemesh는 응답의 내용 유형에 따라 설정/해제되며이 파일은 사이트 메쉬가 처리 할 내용 유형 값을 선언합니다. 필자의 경우 text/html 응답을 처리하려면 text/html;charset=UTF-8에 대한 항목으로 충분하지 않았습니다.

관련 문제