복붙노트

[SPRING] 스프링 부트에 외부 리소스 폴더 추가

SPRING

스프링 부트에 외부 리소스 폴더 추가

jar의 위치에 상대적으로 리소스 폴더를 추가하고 싶습니다. 예를 들어, 다음과 같이 jar 파일 내의 패키지 된 리소스를 추가합니다.

/Directory
    Application.jar
    /resources
        test.txt

나는 다음을 시도했다 :

@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**")
            .addResourceLocations("/resources/", "file:/resources/");
}

나는 또한 시도했다 :

.addResourceLocations("/resources/", "file:resources/");

두 설정 중 하나를 사용하여 http : // localhost : 8080 / resources / test.txt에 액세스하면 화이트 레이블 오류 페이지가 표시됩니다. 이 문제를 어떻게 해결할 수 있습니까?

해결법

  1. ==============================

    1.두 번째 방법이 효과적입니다.

    두 번째 방법이 효과적입니다.

    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**")
                .addResourceLocations("/resources/", "file:resources/");
    }
    

    file : resources /는 상대 경로이므로 / Directory에서 Spring Boot를 시작한 경우에만 가능합니다.

    cd Directory
    java -jar Application.jar
    

    모든 것을 병에 담을 수 있다면 좋지만 외부 리소스를 참조해야한다면 절대 경로를 사용하여 이런 문제를 피할 수 있습니다.

  2. from https://stackoverflow.com/questions/32339172/add-external-resources-folder-to-spring-boot by cc-by-sa and MIT license