SpringBoot+Thymeleaf 앱에서 CSS를 로드할 수 없음

서버 측의 공부를 위해 SpringBoot로 간단한 Todo 앱을 만들고 있습니다만, CSS가 전혀 로드해 주지 않아 상당한 늪에 빠졌기 때문에 메모.


패스 문제?



우선 의심한 것이 패스를 지정하는 방법. 거기 있으니까요.
다양한 경로를 지정하는 방법을 시도했습니다. 그래서 잘 안 가겠습니다.
src/main/resources
├── application.properties
├── dump.sql
├── static
│   ├── css
│   │   └── style.css
│   └── js
└── templates
    ├── category
    │   └── list.html
    └── todo
        └── list.html

../../static/css/style.css라고 해 보거나, css/style.css라고 해 보거나··

상태 코드 400



여기서 주목해야 할 것이 코드가 400이라는 것.
맨 위 이미지를 보세요. 404 NOT FOUND가 아닙니다!
즉 패스가 잘못되어 있는 것은 아니다. 이것을 깨닫는데 꽤 시간이 걸렸습니다.
Aborted는 뭐야 · · Imif · ·

브라우저 문제일 수 있음



그렇게 생각하고 Firefox에서도 시도해 보았습니다. (원래 Chrome)
뭐 물론 그럴 리가 없어.


어라, 뭔가 Chrome보다 긴 ··?




왠지 Firefox씨는 친절하게 Java측의 에러 내용까지 가르쳐 주었습니다.

Failed to convert String to int....?



"css/style.css"부분을 int형으로서 처리하려고 하고 있다··? 왜・・・?
여기서 드디어 확실히 깨달았습니다만, 실은 컨트롤러로 이런 것을 만들고 있었습니다.
@Controller
@RequestMapping("/{category_id}")
public class TodoController {

이 경로 변수 category_id는 int형이므로, 아무래도 베이스 URL의 직후에 들어온 것을 뭐든지 int로서 콘트롤러가 처리하려고 해 버려서 에러가 되고 있었던 것 같습니다.

그래서 컨트롤러의 경로를/categories/{category_id}로 변경하면 무사히 CSS가 로드했습니다.

감사합니다 Firefox.
(Spring측의 로그에 보통으로 에러 내용 쓰고 있었다.)

좋은 웹페이지 즐겨찾기