статический ресурс из $ {catalina.home} в весенней загрузочной войне - PullRequest
0 голосов
/ 11 января 2019

В моем проекте Spring MVC у меня было

<mvc:resources mapping="/resources/**" location="/WEB-INF/resources/, file:${catalina.home}/myresources/" />

настроен на обслуживание статических ресурсов из разных мест. В Spring Boot, однако,

@Configuration
public class ResourceConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/", "file:${catalina.home}/myresources/");
    }
}

не работает должным образом. Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 17 января 2019
    @Configuration
public class ResourceConfig implements WebMvcConfigurer {

    private static final Log LOG = LogFactory.getLog(ResourceConfig.class);

    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        String catalinaHome;
        try {
            catalinaHome = System.getenv("CATALINA_HOME");
        } catch (Exception e) {
            LOG.error(e);
            catalinaHome = "";
        }
        registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/", "file:" + catalinaHome + "/myresources/");    
    }
}
0 голосов
/ 11 января 2019

Spring не читает это свойство $ {Catalina.home} прямо в вашей строке. Но вы можете использовать @Value следующим образом:

@Configuration
public class ResourceConfig implements 
WebMvcConfigurer {
    @Value("${catalina.home}" )
    private String catalinaHome;
    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/", "file:" + catalinaHome + "/myresources/");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...