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 시절에도 있었던 것 같은데 웹플럭스를 너무 어렵게 생각해서 쫄았던 탓에 머리가 크게 굳었던게 원인이었나보다.
반응형
'Java (based by Spring Boot 2)' 카테고리의 다른 글
스프링 웹플럭스에서 CSRF 토큰 때문에 페이지 요청이 모두 막히는 경우 (0) | 2023.07.26 |
---|---|
나만 몰랐던 람다식 (0) | 2022.11.20 |
html과 css가 application/json 으로 반환되는 문제 (EnableWebflux 어노테이션 관련) (0) | 2022.08.15 |
너무 늦은 R2DBC 학습 (0) | 2022.08.10 |
스프링 웹플럭스에서 index.html 파일을 보여주기 (0) | 2022.07.12 |
Comments