내 스프링 컨트롤러는 /resources/*
으로 시작하는 URI를 제외한 모든 URI 유형의 get 요청을 받아 들여야합니다. 잘못된 것이 아니기 때문에 스프링 컨테이너에서 뷰 페이지의 모든 정적 콘텐츠를로드해야합니다.Spring RequestMapping에서 특정 URI 패턴을 무시하는 방법은 무엇입니까?
현재 구성은 URI /
또는 /example
와 요청에 대해 잘 작동이
@RequestMapping(method = RequestMethod.GET, value="/*")
비슷하지만 누군가가 URI 예에서 오타를 확인합니다. /example/random/char
가 던지고 예외 추적 페이지를 찾을 수 없습니다 꽤 분명하고 value="/**"
@RequestMapping(method = RequestMethod.GET, value="/**")
/
또는 /example
내보기 페이지에서 내 정적 콘텐츠를 .js, .css or .png
파일을로드 할 수없는 URI로 요청을하는 날 리드 (404) . 이것은 스프링이 내부적으로 이러한 파일을 URL 패턴과 함께로드하도록 요청한다는 결론에 이르게합니다. http://localhost:8080/resources/my.jpg
.
참고 : - 의도적으로 tomcat을 구성하여 프로젝트 이름을 삭제했습니다.
업데이트 좋아요. @ dimitrisli 의견을 통해 제 프로젝트에 대해 좀 더 자세히 설명해야한다는 것을 알게되었습니다.
기본적으로 URL 리디렉션 구성 요소입니다. 사용자는 get request를 통해 내 응용 프로그램을 호출하고 실제 페이지로 리디렉션하면서 끝납니다.
예를 들어 사용자의 브라우저에서 URL을 http://localhost:8080/sample
이라고 말하면됩니다. 이제는 내 응용 프로그램에서 URL을 분할하여 문자열 sample
을 얻고 db에서 실제 URL을 검색해야합니다 (따라서 sample
은 매우 긴 URL의 별칭입니다). URL이 존재하면 실제 페이지로 리디렉션됩니다. 존재하지 않는 페이지가 표시됩니다.
답변 해 주셔서 감사합니다. 그러나 이것은 내 관심사가 아닙니다. 나는 이미 이것을했다. @Override 공개 무효 addResourceHandlers (ResourceHandlerRegistry 레지스트리) { \t \t registry.addResourceHandler ("/ resources/**"). addResourceLocations ("/ resources /"). } – Satyaprakash
정확히 무엇이 당신의 관심사입니까? 리소스 세부 정보를 정의한 경우 모든 정적 컨텐트가 webapp에서 제공되며 @RequestMapping을 통과하지 않습니다 – dimitrisli
네가 맞습니다 만 value = "/ *"일 때 RequestMapping을 통과하지는 않지만 RequestMapping은 RequestMapping으로 갈 것입니다 value = "/ **" – Satyaprakash