Я использую плагин ресурсов Grails. На клиенте я использую require.js для получения js.
моя конфигурация require.js -
baseUrl: '/js/lib',
С включенным плагином ресурсов -
- браузер сделает запрос на /js/lib/abc.js впустую ~300 мс
- При достижении сервера он будет перенаправлен на /static/2432yi4h32kh4232h4k2h34ll.js.
- Браузер найдет этот файл в своем кеше и обслужит его.
Поэтому я отключил плагин cached-resources, используя -
grails.resources.mappers.hashandcache.excludes = ['**/*.js']
и новый конфиг require.js -
baseUrl: '/static/js/lib',
urlArgs: "bust=" + application_version,
Удаление cached-resources решило проблему перенаправления, но также удалило заголовок expires, который устанавливался для js-файлов, из-за чего браузеры вообще не кэшировали js-файлы.
Как я могу отключить хеширование имени только в кэшированных ресурсах и сохранить установленные им заголовки с истекающим сроком действия. В противном случае, есть ли какие-либо плагины для Grails, которые я могу использовать для установки этих заголовков, и они хорошо работают с плагином Resources.
Я использую Tomcat и Haproxy для обслуживания контента.