как настроить статическое управление версиями (дайджест) для конвейера ресурсов (bertramlabs) в моем приложении с весенней загрузкой 2? - PullRequest
0 голосов
/ 31 августа 2018

версия с весенней загрузкой: 2.0.4.RELEASE версия конвейера активов: 3.0.3

1002 * * Привет

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

Сейчас мы разрабатываем приложение для весенней загрузки, и мы использовали этот плагин, и мы (почти) довольны им.

Но когда мы запускаем приложение в режиме разработки, ресурсы не имеют дайджеста, как / assets / my-styles-b5d2d7380a49af2d7ca7943a9aa74f62s.css

Как настроить плагин для создания дайджеста для всех наших ресурсов?

В настоящее время мы используем эту конфигурацию:

assets {
   minifyJs = true
   minifyCss = true
   enableSourceMaps = false

   includes = ["application.js", "application.scss"]
}

И мы используем тимили для наших шаблонов:

<link th:href="@{/assets/application.css}" rel="stylesheet">

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

Я создал плагин, который позволяет заменять URL для ресурсов с дайджестом в производственном режиме:

Dependency

compile 'ch.itds.taglib:asset-pipeline-thymeleaf-taglib:1.0.0'

Конфигурация

@Configuration
public class ThymeleafConfig {
    @Bean
    public AssetDialect assetDialect() {
        return new AssetDialect();
    }
}

Использование

<html xmlns:asset="https://www.itds.ch/taglib/asset">
<script asset:src="@{/assets/main.js}"></script>
</html>

Актив : src = "@ {/ assets / main.js}" будет заменен на src = "/ assets / main-DIGEST.js" .

Замена происходит только в том случае, если значение параметра DevelopmentRuntime конвейера ресурсов отключено.

Чуть больше подробностей доступно в моем блоге: https://kobelnet.ch/Blog/2019/03/12/assetpipelinethymeleaftaglib

0 голосов
/ 04 сентября 2018

Я нашел решение ...

когда вы используете конвейер ресурсов, вы получаете задачу gradle assetCompile.

при создании .war-файла вы можете добавить эту задачу и заменить все ресурсы версионными файлами.

когда вы хотите использовать версионные файлы в производственном режиме, вы должны использовать эту конфигурацию (build.gradle)

assets {
   minifyJs = true
   minifyCss = true
   skipNonDigests = true
   packagePlugin = true

   includes = ["application.js", "application.scss"]
}

...

war {
   dependsOn 'assetCompile'
   from( "${buildDir}/assets", {
      into "/WEB-INF/classes/META-INF/assets"
   })
   baseName = '<your project>'
   enabled = true
}

вот и все.

При запуске задачи assetCompile создается файл manifest.properties. Этот файл содержит отображение исходного имени файла и версионного. Этот файл используется приложением для поиска правильного ресурса, например, application.css=application-79a3c8a2f085ecefadgfca3cda6fe3d12.css

...