템플릿 "index"를 확인하는 동안 오류가 발생했습니다. 템플릿이 없거나 구성된 템플릿 해결 프로그램에서 액세스할 수 없습니다.
이전에 이 질문을 한 적이 있지만, 저는 문제를 해결하지 못했고, 이상한 기능을 갖게 되었습니다.
내가 만약 내 것을 넣으면index.html
다음과 같이 정적 디렉토리에 파일을 저장합니다.
브라우저에 다음 오류가 나타납니다.
그리고 내 콘솔:
[THYMELEAF][http-nio-8080-exec-3] Exception processing template "login":
Exception parsing document: template="login", line 6 - column 3
2015-08-11 16:09:07.922 ERROR 5756 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].
[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet]
in context with path [] threw exception [Request processing failed; nested
exception is org.thymeleaf.exceptions.TemplateInputException: Exception
parsing document: template="login", line 6 - column 3] with root cause
org.xml.sax.SAXParseException: The element type "meta" must be terminated by
the matching end-tag "</meta>".
그러나 index.html 파일을 템플릿디렉토리로 이동하면 브라우저에 다음 오류가 나타납니다.
뷰 리졸버를 추가했습니다.
@Controller
@EnableWebMvc
public class WebController extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/index").setViewName("index");
registry.addViewController("/results").setViewName("results");
registry.addViewController("/login").setViewName("login");
registry.addViewController("/form").setViewName("form");
}
@RequestMapping(value="/", method = RequestMethod.GET)
public String getHomePage(){
return "index";
}
@RequestMapping(value="/form", method=RequestMethod.GET)
public String showForm(Person person) {
return "form";
}
@RequestMapping(value="/form", method=RequestMethod.POST)
public String checkPersonInfo(@Valid Person person, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "form";
}
return "redirect:/results";
}
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("templates/");
//resolver.setSuffix(".html");
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
Web Security Config.java
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/index").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
index.displaces를 표시합니다.
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<meta>
<meta> charset="UTF-8">
<title></title>
</head>
<body>
<h1>Welcome</h1>
<a href="../../login.html"><span>Click here to move to the next page</span></a>
</body>
</html>
이 시점에서 나는 무슨 일이 일어나고 있는지 모른다.누가 조언 좀 해줄래?
갱신하다
가 index.html
가 발생하고 있습니다.
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta> charset="UTF-8">
<title></title>
</head>
<body>
<h1>Welcome</h1>
<a href="../../login.html"><span>Click here to move to the next page</span></a>
</body>
</html>
의 이름을 확인합니다.
템플릿
폴더. 템플릿이 아닌 템플릿이어야 합니다(s 제외).
index.html
에 한다templates
내가 알기로는.두 번째 시도는 맞는 것 같네요
있듯이, 「 」는 「 」입니다.index.html
예를 들어 세에 있는는 다음과 .meta
는 실제로는 「」로 할 가 있습니다.head
★★★★★★★★★★★★★★★★★★★★★★★★★★★
콘솔에 로그인과의 경합이 표시된다.을 해야 할것 같아요.index.html
거 예를 들어 다음과 같습니다.
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>k</title>
</head>
봄은 처음이라 한 시간 동안 이 문제를 해결하려고 노력했어요.
--->로 이동합니다.
다음을 추가합니다.
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
이 문제는 application.properties에서 다음 코드를 복사하여 해결할 수 있습니다.
spring.thymeleaf.enabled=false
이것은 나를 성공하게 만든다!
prefix: classpath:/templates/
사용하시는 어플리케이션.yml
이 문제가 발생하여 모든 것이 정상인 경우 IDE에서 캐시/재시작을 비활성화해 보십시오.이렇게 하면 대부분의 경우 문제가 해결됩니다.
이 오류는 대부분의 경우 닫힘 태그가 없기 때문에 발생합니다.또, 레거시 HTML 포메이트를 서포트하면서, 다음의 의존성에 의해서 이 문제를 해결할 수 있습니다.
코드 문자 집합="UTF-8"> 메타 태그는 닫히지 않습니다.
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.22</version>
</dependency>
나에게 문제는 대소문자를 구분하는 것이었다.는 용 i i용었 i i i i i 。~{fragments/Base}
~{fragments/base}
은 ( ) 。base.html
)
개발 환경은 Windows였지만 애플리케이션을 호스팅하는 서버는 Linux였기 때문에 Windows의 경로는 대소문자를 구분하지 않기 때문에 개발 중에는 이 문제가 발생하지 않았습니다.
템플릿 이름이 슬래시로 시작하는 경우에도 오류 메시지가 나타날 수 있습니다.
return "/index";
IDE에서 파일은 두 개의 슬래시가 있는 경로로 정상적으로 해결되었습니다.
getResource(templates//index.html)
Delegating to parent classloader org.springframework.boot.devtools.restart.classloader.RestartClassLoader@2399ee45
--> Returning 'file:/Users/andreas/git/my-project/frontend/out/production/resources/templates//index.html'
템플릿이 항아리에 포장되어 있는 실제 시스템에서는 슬래시가 두 개 있는 해상도가 작동하지 않고 동일한 오류 메시지가 나타납니다.
✅ 선행 슬래시를 생략합니다.
return "index";
" " " spring.thymeleaf.mode=HTML5
가 meapplication.properties를 했습니다.그것도 시도해 보세요.
도 맞닥뜨렸습니다.TemplateResolver
error, 뷰 오류 중 " "spring.thymeleaf.mode=HTML5
application.properties
9용으로 .STS 웹 사이트 9.
src/main/resources/templates 폴더에서 html 파일을 사용할 수 있는지 확인합니다.
@RestController도 추가해 보세요.이 문제는 같은 문제였습니다.@RestController @Controller를 둘 다 추가했습니다.찾아주세요.
예를 들어 (숫자를 문자열에 파싱하거나 그 반대)와 같은 예외가 있기 때문일 수 있습니다.
셀 값이 null인지 확인하거나 예외를 처리하여 참조하십시오.
베스트 샤히드
나는 이 문제를 디버깅하느라 2시간을 허비했다.
템플릿 파일을 올바른 위치(리소스/템플릿/)에 저장했는데도 동일한 오류가 계속 발생했습니다.
알고 보니 제 프로젝트에서 몇 가지 추가 패키지를 만들었기 때문입니다.예를 들어, 모든 컨트롤러 파일은 'controller' 패키지에 들어 있었습니다.
Spring Initializr에서 자동으로 생성된 파일에 대해서도 동일한 작업을 수행했습니다.
왜 이런 일이 일어나는지 정확히는 모르겠지만
근데 내가 움직였을 때ServletInitializer
「」가 붙은 파일 및 「」가 붙은 파일.@SpringBootApplication
프로젝트의 근본으로 돌아가서, 오류는 사라졌습니다!
저는 pom.xml에 포함시키면 예외가 발생합니다.pom.xml에서 삭제하면 문제가 해결됩니다.(솔직히 어떻게 그런 일이 일어났는지 모르겠어요)
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<targetPath>${project.build.outputDirectory}</targetPath>
<includes>
<include>application.properties</include>
</includes>
</resource>
</resources>
</build>
제 경우 위의 제안과 같이 다른 모든 것은 정상이었지만, "템플릿이 존재하지 않거나 설정된 템플릿리졸바에서 접근할 수 없을 수 있습니다"라고 불평하고 있었습니다.내 프로젝트를 다른 샘플 프로젝트와 비교한 결과, 나는 내가 부족하다는 것을 알았다.
<configuration>
<addResources>true</addResources>
</configuration>
봄부츠마븐으로내게는 효과가 있었다.내 플러그인 섹션은
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
그런데 왜 Tymeleaf를 작동시키기 위해 태그를 붙여야 했는지 모르겠습니다.
여기서 모든 솔루션을 시도해 봤지만, 어느 솔루션도 효과가 없는 것 같아서 반품 명세서를 조금 변경해 봤더니 효과가 있었어요!tymleaf가 템플릿파일을 인식하지 못하는 문제가 return 스테이트먼트에 ".html"을 추가하면 해결된 것 같습니다.
@RequestMapping(value="/", method = RequestMethod.GET)
public String getHomePage(){
return "index.html";
}
언급URL : https://stackoverflow.com/questions/31944355/error-resolving-template-index-template-might-not-exist-or-might-not-be-acces
'programing' 카테고리의 다른 글
Oracle Joins - 기존 구문 VS ANSI 구문 비교 (0) | 2023.03.06 |
---|---|
mongoose 저장 vs 삽입 vs 생성 (0) | 2023.03.06 |
json 문자를 열거형으로 역직렬화 (0) | 2023.03.06 |
JWT를 저장하고 react를 사용하여 모든 요청과 함께 전송하려면 어떻게 해야 합니까? (0) | 2023.03.06 |
Oracle: UPSERT(업데이트 또는 테이블에 삽입) 방법 (0) | 2023.03.06 |