인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기

[실습] Thymeleaf - 부트스트랩 템플릿

[실습]Thymeleaf- 부트스트랩 템플릿 - 자료가 달라요 ...

해결된 질문

24.03.31 22:57 작성

·

375

1

안녕하세요 틈틈히 공부 하고 있는데 여기까지 왔네요..

이해를 못하는 부분이 좀있어서 첨 부터 다시 보고 여기 까지 왔는데 모르는부분은 인터넷에서 확인하고 알아갔는데 강의 내용에서 알려주신 자료와 강의 하신 자료가 다른거 같아서 이렇게 글 남기네요

Personal - Free Bootstrap Template - Start Bootstrap

에서 받은 자료을 받아서 압축 풀면

=====================

=================== 위처럼 나타납니다.

 

강의 내용에서 자료를 받은 내용은 이렇더라구요

=============================

제자료는 강사님의 자료 처럼 Vendor이 없어요...

강의 노트를 확인하면

[링크에서 템플릿 파일 다운로드 후 압축을 해제하고, 파일과 폴더를 각각 아래 경로에 추가합니다. 디렉토리가 없다면 만듭니다]

라고 적혀 있어서

 

위 처럼 폴더를 만들긴 했지만

vendor폴더가 없어요 강사님의 git에 있는 벤드를 가져와서 붙여도 되나요?? 그러면 강의 내용을 앞서 가는거 같아서 하다가 말았어요...

Vendor 폴더 그냥 폴더만 만들고 계속 강의 들어도 되나요?

 

 

 

 

답변 2

0

정보근님의 프로필 이미지
정보근
지식공유자

2024. 04. 01. 23:00

안녕하세요 정보근입니다:)

질문 내용을 보면 "Thymleaf - 부트스트랩 템플릿" 강의를 듣고 계신 것으로 보이네요.

해당 파일에서 추가할 내용은 아래 이미지와 같습니다.

image

올려주신 vendor가 포함된 디렉토리 이미지는 강의 화면에서 캡쳐한 것으로 보이는데,

나중에 어드민 페이지를 만들 때 추가되어야 할 내용입니다.

데모 프로젝트를 만들고 롤백한 뒤 각 강마다 내용을 추가해가는 과정에서 남아있던 항목이 있던 것 같아요.

platform.base.d.ts파일이 회색인 것을 보면,

깃 관리 대상이 아니어서 롤백을 해도 사라지지 않고 남아있었던 것 같네요.

 

결론은 현재 시점에서는 vendor 디렉토리는 무시하시고 진행하셔도 괜찮습니다.

강의 진행 중 헷갈리시는 부분이 있으면 제 깃허브에서 받으신 프로젝트의 깃 커밋 로그를 참고해주세요.

어떤 파일에서 어떤 내용이 바뀌었는지 확인할 수 있고, 그대로만 진행해주시면 됩니다.

감사합니다:)

just kim님의 프로필 이미지

2024. 04. 02. 00:59

안녕하세요 저 이어서 질분드려요

Thymeleaf에서 localhost:8080 해서 index 페이지가지 정상적으로 진행되는것을 보고 다음 챕처

탬플릿 수정 챕터를 진행했습니다. .

그렇지만 내용이 짜르고 붙이고 하는 부분이 많아

그 과정에 미스 된 내용이 많아서 다시 자르고 붙이는 과정을 반복하다가 안되겠다 싶어서 강사님의 git내용을 복사 붙여 넣기를 반복하다가 더욱 미궁으로 빠져서 다시

Thymeleaf - 부트 스트랩 템플릿 전 단계로 올라가서 다운 받고 복붙 하는 과정을 진행했지만 여전히 문제가 잡혀 지지 않네요

 

내용을 이렇습니다. 소스 코드는 깃에 올렸습니다.

https://github.com/justkjy/portfolio-justkim

 

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Tue Apr 02 00:50:31 KST 2024

There was an unexpected error (type=Internal Server Error, status=500).

===============================

역시 자바의 에러는 좀 길게 나오네요

==============================

2024-04-02T00:50:31.283+09:00 ERROR 17708 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.thymeleaf.exceptions.TemplateInputException: Error resolving template [presetation/index], template might not exist or might not be accessible by any of the configured Template Resolvers] with root cause

org.thymeleaf.exceptions.TemplateInputException: Error resolving template [presetation/index], template might not exist or might not be accessible by any of the configured Template Resolvers

at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:869) ~[thymeleaf-3.1.2.RELEASE.jar:3.1.2.RELEASE]

at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) ~[thymeleaf-3.1.2.RELEASE.jar:3.1.2.RELEASE]

at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1103) ~[thymeleaf-3.1.2.RELEASE.jar:3.1.2.RELEASE]

at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1077) ~[thymeleaf-3.1.2.RELEASE.jar:3.1.2.RELEASE]

at org.thymeleaf.spring6.view.ThymeleafView.renderFragment(ThymeleafView.java:372) ~[thymeleaf-spring6-3.1.2.RELEASE.jar:3.1.2.RELEASE]

at org.thymeleaf.spring6.view.ThymeleafView.render(ThymeleafView.java:192) ~[thymeleaf-spring6-3.1.2.RELEASE.jar:3.1.2.RELEASE]

at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1431) ~[spring-webmvc-6.1.4.jar:6.1.4]

at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1167) ~[spring-webmvc-6.1.4.jar:6.1.4]

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1106) ~[spring-webmvc-6.1.4.jar:6.1.4]

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.4.jar:6.1.4]

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.4.jar:6.1.4]

at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.4.jar:6.1.4]

at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.19.jar:6.0]

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.4.jar:6.1.4]

at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.19.jar:6.0]

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.19.jar:10.1.19]

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.4.jar:6.1.4]

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.4.jar:6.1.4]

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.4.jar:6.1.4]

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.4.jar:6.1.4]

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.4.jar:6.1.4]

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.4.jar:6.1.4]

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.19.jar:10.1.19]

at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]

 

 

 

정보근님의 프로필 이미지
정보근
지식공유자

2024. 04. 02. 12:50

안녕하세요 정보근입니다:)

 

Whitelabel Error Page는 주로 스프링이 요청을 처리하던 중 발생한 예외를 핸들링하지 못했을 때 발생했는데요.

제일 먼저 확인해볼 건 URL의 경로나, 리턴할 HTML 파일 등에 오타가 있지 않았는지 등입니다.

 

예외 메시지를 읽어보면 "Error resolving template [presetation/index]"라는 내용이 보이네요.

presentation/index 경로의 템플릿을 찾지 못해서 발생한 예외이고 컨트롤러에서 리턴할 html 경로를 presetation으로 오타가 있었던 것 같네요.

리턴값을 "presentation/index"로 바꿔주시거나, html 경로의 디렉토리를 "presetation"으로 바꾸면 문제 해결될 것으로 생각됩니다

 

감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

2024. 03. 31. 23:01

안녕하세요, 인프런 AI 인턴입니다. just kim님의 질문에 대해 답변 드리겠습니다.

강의 중 “입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기“에서 제시된 부트스트랩 템플릿 관련 질문으로 보입니다. just kim님이 공유해주신 상황과 유사한 이슈로 다른 수강생이 질문한 내용이 있어, 그에 대한 답변을 참고하시면 도움이 될 것 같습니다.

관련 질문 및 답변:

이 질문에서는 Thymeleaf를 사용하여 부트스트랩 템플릿을 적용하는 과정에서 페이지 간 이동 시 CSS가 적용되지 않는 문제에 대해 논의되었습니다. 정보근 강사님께서는 템플릿을 프로젝트 디렉토리 내부로 옮기고 절대경로로 css 파일을 참조해야 한다고 설명하셨습니다.

위 링크된 질문 및 답변에는 구체적으로 vendor 폴더가 언급되지 않았으나, 템플릿을 프로젝트에 적절히 통합하는 방법에 대한 정보를 얻을 수 있습니다. 강사님이 제시한 방법과 유사한 구조를 프로젝트에 적용하는 경우, vendor 폴더가 필요한 종속성을 포함하고 있을 수 있으므로, 강의 내용이나 제공된 강의자료를 다시 확인하시는 것이 좋습니다.

특히, 제공된 자료와 실제 강의 내용에서 사용된 자료가 다르게 보일 때는 새 버전의 템플릿이 업데이트되었을 가능성도 있으므로, 이 경우 강사님께서 제공한 GitHub 레포지토리의 내용을 참고하는 것이 좋습니다.

강사님의 GitHub 레포지토리를 확인하여 필요한 vendor 폴더 및 기타 자료를 찾는 것도 하나의 방법이 될 수 있습니다. 강의를 따라가면서 필요한 자료의 부족이나 차이점이 발생하는 경우, 이를 강의 Q&A 섹션에 질문하여 해결하는 것이 가장 좋습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

just kim님의 프로필 이미지

2024. 04. 01. 22:15

AI 인턴 답변 고마웡 ~~~

요즘 진도가 안나가서 신경질좀 부렸네

 

그리고 일단 진행해도 문제가 없으니깐 다시 막히면 질문 드릴께욥

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기