2017-03-22 1 views
2

나는 내 템플릿 디렉토리를 찾을 수 없습니다 ThymeleafThymeleaf 봄 부팅 프로젝트 내부의 템플릿을 감지 할 수

projectName 
    -Gradle-Module1(Spring boot module) 
     -build 
     -src 
      -main 
      -resources 
       -templates 
        index.html 
     build.gradle 
    -Gradle-Module2 
     ... 
    build.gradle 
    ... 

하지만 봄 부팅을 사용하려는 인 나의 봄 부팅 응용 프로그램에서 다음 프로젝트 구조를 가지고 경고

Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration) 

PS를 보여주는 : 나는 내가

과 같은 일을하고 내 컨트롤러 코드에서

@EnableAutoConfiguration을 사용하고 있습니다

@Controller 
@EnableAutoConfiguration 
public class BaseController { 

    @RequestMapping(value = "/") 
    public String index() { 
     return "index.html"; 
    } 
} 

index.html 파일은 단지 hello world를 인쇄합니다.

그래서 일반적으로(내 생각과 동일한 Gradle 모듈)을 봐야하지만 어쨌든 찾을 수 없습니다.

내가 놓친 게 있나요 내가 오류 Error resolving template "index.html", template might not exist or might not be accessible by any of the configured Template Resolvers 아래 얻고있다 localhost:8080 에 액세스하려고 할 때?

감사합니다.

감사합니다.

+0

이것은 훌륭한 질문입니다. 질문 주셔서 감사합니다! – devdanke

답변

4

파일 이름 만 반환해야합니다. 예컨대 .hmtl

@RequestMapping(value = "/") 
    public String index() { 
    return "index"; 
} 
+0

는하지만를 시도 문제 직면'수요일 월은 인도 표준시 15시 33분 8초 2017 (22)가 예기치 않은 오류 (유형 = 내부 서버 오류, 상태 = 500)이 있었다. 템플릿 "색인"을 해결하는 중 오류가 발생했습니다. 템플릿이 존재하지 않거나 구성된 템플릿 해결 도구 중 하나에서 액세스 할 수 없습니다. – Vihar

+0

requestmapping 및 index.html 파일에 대한 클래스를 게시하여 더 많은 컨텍스트를 얻으십시오. 어떤 형태의 인증을 사용하고 있습니까? – kkflf

+0

이 질문을 업데이트했습니다 – Vihar

2
@GetMapping("/") 
public String index() { 
    return "index"; 
} 
+0

도 작동하지 않습니다 – Vihar

1

당신은 다음과 같이 Thymeleaf을 구성 할 필요가없이 :

@Configuration 
public class ThymeleafConfig { 
    @Bean 
    public SpringResourceTemplateResolver templateResolver() { 
     SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); 
     templateResolver.setCacheable(false); 
     templateResolver.setPrefix("classpath:/templates/"); 
     templateResolver.setSuffix(".html"); 
     return templateResolver; 
    } 

    @Bean 
    public SpringTemplateEngine templateEngine() { 
     SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine(); 
     springTemplateEngine.addTemplateResolver(templateResolver()); 
     return springTemplateEngine; 
    } 

    @Bean 
    public ThymeleafViewResolver viewResolver() { 
     ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); 
     viewResolver.setTemplateEngine(templateEngine()); 
     viewResolver.setOrder(1); 
     return viewResolver; 
    } 
} 

Spring doc recommends는 기본 @Configuration 클래스에 @EnableAutoConfiguration 주석을 추가 할 수 있습니다.

은 또한 당신이 잘못 프로젝트 구조가 보인다, 일반적인 패키지의 계층 구조는 다음과 같습니다

src 
    |- main 
     |- java 
     |- resources 
      |- static 
      |- templates 
    |- test 

이 경우 템플릿이 아닌 src/resources/templates/에, src/main/resources/templates에있을 것입니다.

+1

고맙습니다."templateResolver.setPrefix ("classpath :/templates/");" jar 패키징으로 Spring-Boot를 실행할 때 문제가 해결되었습니다. – devdanke