Доступ к файлам stati c за пределами папки приложения с помощью Spring Boot 2.2 - PullRequest
2 голосов
/ 05 мая 2020

В нашем приложении мы должны обслуживать файлы c stati из папки за пределами папки приложения. Папка с файлами stati c находится в / var / tmp / myapp / attachments в дополнение к расположениям по умолчанию. Приложение реализовано для создания развертываемой войны (расширение SpringBootServletInitializer.class). Использование Spring Boot 2.2 и Tomcat 9

Вот настройка моего приложения:

1. application.yml file
    main:
        web-application-type: none

    # tried adding static resource location here but did not work
    #resources:
         #static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:///var/tmp/myapp/attachments/

2. Application.class
     @SpringBootApplication(
    // We are including Spring, but don't want it to stomp on the legacy servlet container, so disable various configurations.
    exclude = {
            DispatcherServletAutoConfiguration.class,
            ErrorMvcAutoConfiguration.class,
            WebMvcAutoConfiguration.class,
            MongoAutoConfiguration.class,
            MongoDataAutoConfiguration.class},
    scanBasePackages = {"com.app", "com.appmodule"})
 public class Application extends SpringBootServletInitializer {

   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
     return builder.sources(Application.class);
   }
 }

3. pom.xml
     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

Пробные решения: 1. Попытался добавить в приложение spring-resources-stati c -locations .yml 2. Пытался написать:

          @Configuration
          public class StaticResourceConfiguration implements WebMvcConfigurer {
           @Override
           public void addResourceHandlers(ResourceHandlerRegistry registry) {
              registry.addResourceHandler("/myapp/**")
                      .addResourceLocations("classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:///var/tmp/myapp/attachments/");
       }
     }

Ссылка создана для доступа к stati c местоположениям: 1. http://my.development.com: 8080 / myapp / attachments / 6b8f6b78-e0e3-4163-89df -2861ac58bc65 / common / images / COVER_PANE_FOOTER_COMPANY_LOGO / 11 / CompanyLo go .jpg 2. также пробовал: http://my.development.com: 8080 / attachments / 6b8f6b78-e0e3-4163-89df-2861ac58bc65 / common / images / COVER_PANE_FOOTER_COMPANY_LOGO / 11 / CompanyLo go .jpg

Не могли бы вы помочь мне выяснить, исходя из текущей конфигурации приложения, как лучше всего этого добиться?

Спасибо!

...