2014-07-26 2 views
4

최신 버전의 generator-jhipster를 사용하여 응용 프로그램을 만들었습니다. 서버를 오류 페이지가 생성되도록 변경하기 전까지는 상황이 좋았습니다. 불행하게도, 아웃 오브 박스 구성이 error.html 템플릿 해결되지 않습니다 바람둥이에 배포하는 경우JHipster webTemplateResolver for /WEB-INF/templates/error.html jar에는 /WEB-INF/classes/templates/error.html이 포함되어 있습니다.

@Bean 
@Description("Thymeleaf template resolver serving HTML 5") 
public ServletContextTemplateResolver webTemplateResolver() { 
    ServletContextTemplateResolver webTemplateResolver = new ServletContextTemplateResolver(); 
    webTemplateResolver.setPrefix("/WEB-INF/templates/"); 
    webTemplateResolver.setSuffix(".html"); 
    webTemplateResolver.setTemplateMode("HTML5"); 
    webTemplateResolver.setCharacterEncoding(CharEncoding.UTF_8); 
    webTemplateResolver.setOrder(2); 
    return webTemplateResolver; 
} 

을, 나는 ... 예외 처리 템플릿 "오류"오류 메시지의 끝없는 목록을 얻을 : "오류"템플릿을 해결하는 중 오류가 발생했습니다. 템플릿이 존재하지 않거나 구성된 템플릿 해결 도구 중 하나에서 액세스하지 못할 수 있습니다.

다른 사용자에게 유용합니까? 이 문제를 해결하기 위해 src/main/webapp/WEB-INF/디렉토리에 Thymeleaf 템플릿을 생성해야합니까? 다른 ViewResolver 구성을 사용해야합니까?

이 위를 변경하여

, 실제로 문제를 해결 ...

public ITemplateResolver webTemplateResolver() { 
     ClassLoaderTemplateResolver webTemplateResolver = new ClassLoaderTemplateResolver(); 
     webTemplateResolver.setPrefix("templates/"); 
     webTemplateResolver.setSuffix(".html"); 
     webTemplateResolver.setTemplateMode("HTML5"); 
     webTemplateResolver.setCharacterEncoding(CharEncoding.UTF_8); 
     webTemplateResolver.setOrder(2); 
     return webTemplateResolver; 
    } 

그래서 유일한 문제는 남아가에 방법 그렇다면이 변경 JHipster로 밀어할지 여부입니까?

답변

0

생성 된 파일에는 resources/templates/error.html에 error.html 페이지가 있습니다. 'resources/templates'는 기본 템플릿 디렉토리입니다. 파일을 템플릿 디렉토리에 복사하여 해결할 수 있다고 생각합니다.

두 구성의 차이점은 다음과 같습니다

당신이 ServletContextTemplateResolver을 사용하면 servlet context 여기에 웹 컨텍스트의 루트 디렉토리를 의미, 그것은 webapp 디렉토리입니다.

당신이 ClassLoaderTemplateResolver로 변경하는 경우

class loader 여기에 접두사의 루트가 class path 것을 의미, 그것은 컴파일 WEB-INF/classes에 복사됩니다 '자원'과 자바 클래스와 같다.