작성
·
79
0
application.yml에서 마지막에
web :
static-path-pattern: /static/**
이걸 안하면 static 폴더 아래에 있는 정적 리소스 파일이 html파일에 적용이 안되는데 왜이런건가요? 이전에는 해당 코드가 yml에 없었어도 제대로 됐었던것같은데 이유가 뭔가요? 그리고 정적 리소스 파일의 디폴트값은 원래 /static 아닌가요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 에욱님.
스프링 부트의 기본 설정에서는 정적 리소스 폴더의 위치가 /static
, /public
, /resources
, 그리고 /META-INF/resources
등의 경로로 설정되어 있습니다. 즉, 이러한 폴더에 있는 파일들은 자동으로 서빙되어야 합니다.
하지만, 특정 애플리케이션 설정이나 Spring Boot의 버전에 따라 다르게 동작할 수 있습니다. 특히, spring.web.resources.static-locations
설정이나 사용자 정의 ResourceHandler
를 사용하여 경로를 재구성하면 기본 경로 설정이 무시될 수 있습니다.
application.yml
의 static-path-pattern
설정은 Spring Boot 2.4 이상부터 소개되었으며, 정적 리소스가 서빙될 기본 패턴을 설정하는 옵션입니다. 이 설정이 없을 때 잘 동작했었다면, 아마도 프로젝트 구조나 다른 설정의 변경 때문일 수 있습니다.
스프링 부트의 기본 작동 방식을 벗어나는 설정이 필요했다면, 사용 중인 Spring Security 또는 다른 설정들에 의해 정적 자원이 적절히 로드되지 않을 수 있습니다. 이 경우 설정을 명시적으로 추가하여 문제를 해결하신 것입니다.
관련된 설정과 더 구체적인 상황을 확인하시려면, 다음의 질문들을 참고해 보세요:
“정적 파일들이 ignore 되지 않는 문제가 발생합니다..” - 정적 파일 처리가 문제될 때의 해결 방법과 기타 설정 팁을 제공합니다.
“WebIgnore설정 오류 질문” - 정적 리소스 관련 설정에서 어려움에 대한 해결책을 안내합니다.
“PermitAllFilter VS web.ignoring() 에 관한 질문입니다.” - 정적 리소스 보안 설정에 대한 차이점과 그 효과에 대해 다루고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.