타임리프 적용을 진행하는데 css를 지정해주었으나 찾지 못하는 문제가 존재했다.
파일구조
다음과 같은 형식으로 작성했으나 302에러가 나타났다.
<link th:href="@{/CSS/member/login.css}" rel="stylesheet" />
인터넷에 검색을 진행해보니 boot에선 해당 부분이 기본적을 scan되는 페이지라고 한다.
이를 토대로 css를 지정하였고 시큐리티에 설정도 끝내주었다.
스프링 시큐리티
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(authorize -> authorize
.requestMatchers("/customLoginPage","resources/*","/CSS/**").permitAll() // 여기서 모든 사용자의 접근을 허가
pom.xml
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.1'
id 'io.spring.dependency-management' version '1.1.5'
}
implementation 'org.springframework.boot:spring-boot-starter-security'
properties
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.cache=false
해당 형식으로 변경하니 css는 문제없이 가져오게 되었다.
rediret 문제
css를 가져오는것 까진 문제없었으나 실제 controller엔 2번의 request가 요청되고 있었다.
Bean이 2개인가 싶어 확인해보았으나 그것도 문제가 아니었다.
확인해보니 favicon.ico에 설정을 따로 진행해주지 않아서 해당 리소스를 리로드하기 위해 redirect가 한번 더 진행된것이다
이를 해결하기 위해선
html 코드에 favicon을 임의로 설정해준다던가
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
시큐리티 부분에서
.requestMatchers("customLoginPage","/CSS/**","/favicon.ico").permitAll()
해당 favicon을 수정해주면 된다.
'Spring' 카테고리의 다른 글
@ResponseBody @RequestBody (0) | 2024.09.15 |
---|---|
젠킨스 로컬에서 자동화하기 - 1 (0) | 2024.06.27 |
젠킨스 로컬에서 자동화하기 - 2 (0) | 2024.06.22 |
젠킨스 관련 에러 내용 (crumb, 용량부족) (0) | 2024.06.16 |
Jmeter - 2 (0) | 2024.06.12 |