작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
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 - 부트스트랩 템플릿" 강의를 듣고 계신 것으로 보이네요.
해당 파일에서 추가할 내용은 아래 이미지와 같습니다.
올려주신 vendor가 포함된 디렉토리 이미지는 강의 화면에서 캡쳐한 것으로 보이는데,
나중에 어드민 페이지를 만들 때 추가되어야 할 내용입니다.
데모 프로젝트를 만들고 롤백한 뒤 각 강마다 내용을 추가해가는 과정에서 남아있던 항목이 있던 것 같아요.
platform.base.d.ts파일이 회색인 것을 보면,
깃 관리 대상이 아니어서 롤백을 해도 사라지지 않고 남아있었던 것 같네요.
결론은 현재 시점에서는 vendor 디렉토리는 무시하시고 진행하셔도 괜찮습니다.
강의 진행 중 헷갈리시는 부분이 있으면 제 깃허브에서 받으신 프로젝트의 깃 커밋 로그를 참고해주세요.
어떤 파일에서 어떤 내용이 바뀌었는지 확인할 수 있고, 그대로만 진행해주시면 됩니다.
감사합니다:)
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 인턴입니다. just kim님의 질문에 대해 답변 드리겠습니다.
강의 중 “입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기“에서 제시된 부트스트랩 템플릿 관련 질문으로 보입니다. just kim님이 공유해주신 상황과 유사한 이슈로 다른 수강생이 질문한 내용이 있어, 그에 대한 답변을 참고하시면 도움이 될 것 같습니다.
이 질문에서는 Thymeleaf를 사용하여 부트스트랩 템플릿을 적용하는 과정에서 페이지 간 이동 시 CSS가 적용되지 않는 문제에 대해 논의되었습니다. 정보근 강사님께서는 템플릿을 프로젝트 디렉토리 내부로 옮기고 절대경로로 css 파일을 참조해야 한다고 설명하셨습니다.
위 링크된 질문 및 답변에는 구체적으로 vendor
폴더가 언급되지 않았으나, 템플릿을 프로젝트에 적절히 통합하는 방법에 대한 정보를 얻을 수 있습니다. 강사님이 제시한 방법과 유사한 구조를 프로젝트에 적용하는 경우, vendor
폴더가 필요한 종속성을 포함하고 있을 수 있으므로, 강의 내용이나 제공된 강의자료를 다시 확인하시는 것이 좋습니다.
특히, 제공된 자료와 실제 강의 내용에서 사용된 자료가 다르게 보일 때는 새 버전의 템플릿이 업데이트되었을 가능성도 있으므로, 이 경우 강사님께서 제공한 GitHub 레포지토리의 내용을 참고하는 것이 좋습니다.
강사님의 GitHub 레포지토리를 확인하여 필요한 vendor
폴더 및 기타 자료를 찾는 것도 하나의 방법이 될 수 있습니다. 강의를 따라가면서 필요한 자료의 부족이나 차이점이 발생하는 경우, 이를 강의 Q&A 섹션에 질문하여 해결하는 것이 가장 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
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]