반응형
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Real Vectorism. 훨씬 더 입체적으로...

html과 css가 application/json 으로 반환되는 문제 2 (EnableWebflux 어노테이션 관련) 본문

Java (based by Spring Boot 2)

html과 css가 application/json 으로 반환되는 문제 2 (EnableWebflux 어노테이션 관련)

grast 2022. 9. 17. 13:39
반응형

이전에는 @EnableWebflux 어노테이션이 모든 리소스 요청을 application/json 으로 리턴을 시켜주는 문제로 인해 index 페이지를 받을 수 없는 문제를 확인했었다.

 

결론부터 먼저 말하자면 @EnableWebflux 를 사용하는 상태 그대로 index 페이지를 보여줄 수 있는 방법이 있다. 별도의 처리가 필요한 것이 아니라 MVC처럼 리소스의 경로를 라우터에 컨트롤러처럼 정의하는 방식이다.

 

그러니까... 난 또 삽질하고 있었던 것이다.

 

@EnableWebflux 를 사용한 상태에서 어노테이션을 삭제하지 않고 처리하는 방법이다. index 페이지를 보여주도록 정의한 라우터에 추가적으로 다음과 같이 작성한다.

@Bean
public RouterFunction<ServerResponse> resource() {
    return RouterFunctions.resources(
            "URL패턴", 
            new ClassPathResource("classpath 내의 리소스파일이 들어있는 경로, /로 시작하지 않음")
    );
}

그러니까, 내 파일이 src/java/resources 안에 public 이라는 폴더를 가지고 있다고 치면

new ClassPathResource("public/")

이 되는 것이다. 그리고 내 css 파일과 js 파일들은 별도의 컨텍스트나 url계층을 두지 않고 바로 / 에서 시작하는 경로를 가지고 있기 때문에 첫번째 패러미터는

"/**"

가 된다.

으음... 난 패러미터와 아규먼트가 정말이지 너무 헷갈린다.

 

어찌됐든 결국 이걸로 @EnableWebflux 를 유지한 상태로 index 파일을 띄우는 방법을 찾았다. 이런 설정은 스프링 MVC 시절에도 있었던 것 같은데 웹플럭스를 너무 어렵게 생각해서 쫄았던 탓에 머리가 크게 굳었던게 원인이었나보다.

반응형
Comments