как починить favicon.ico, подпружиненный в springboot (пока jpg-s в подпапках нет)? - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть Springboot mavenproject, который содержит ресурсы изображений в папке

  • src / main / resources / static / favicon.ico
  • src / main / resources / static / img /cart.jpg

и соответствующий сценарий maven pom.xml содержит

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

Согласно https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html filtering = true заменяет заполнители и, следовательно, уничтожает двоичные изображения.

После сборки приложения с mvn install мой целевой каталог содержит эти файлы

  • target / classes / static / favicon.ico
  • target / classes / static / img/cart.jpg

, где favicon.ico поврежден (из-за фильтрации), а img / cart.jpg - нет.

Любая идея о защите img / cart.jpg готов (и может быть расширен для favicon.ico)?

мой текущий обходной путь.у меня есть отдельная папка ресурсов "resource-bin" только для favicon.ico

  • src / main / resources-bin / static / favicon.ico

с этим mavenнастройка

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/resources-bin</directory>
        </resource>
    </resources>

1 Ответ

0 голосов
/ 20 января 2019

Вы можете сделать это, определив две конфигурации ресурса.Один с включенной фильтрацией и исключающий определенные каталоги и / или файлы, а другой с отключенной фильтрацией и включающий каталог и / или файлы:

<resources>
    <resource>
        <filtering>true</filtering>
        <directory>src/main/resources</directory>
        <excludes>
            <exclude>public/</exclude>
        </excludes>
    </resource>
    <resource>
        <filtering>false</filtering>
        <directory>src/main/resources</directory>
        <includes>
            <include>public/</include>
        </includes>
    </resource>
</resources>

Это должно предотвратить фильтрацию всех ресурсов в общедоступном каталоге.Если вы используете весеннюю загрузку, вам также может понадобиться настроить плагин с помощью addResources false:

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <version>2.1.2.RELEASE</version>
  <configuration>
    <addResources>false</addResources>
  </configuration>
</plugin>

Однако это отключает горячее обновление ресурсов.

...