2014-11-11 3 views
7

Немного о приложении, в котором я работаю: Spring MVC, Java EE Web-приложение, Maven.Механизм перехвата кэша для Java/SpringMVC/Maven project

В принципе, я ищу механизм для обновления всех файлов JS и CSS при каждом развертывании нашего приложения. В настоящий момент приложение ссылается на статические файлы (например, «js/app.js»). Каждый раз, когда происходит изменение этого файла, после повторного развертывания локально мы получаем 304, когда браузер загружает его (файл не был изменен). Мои вопросы:

1) Было бы лучше обслуживать эти файлы при повторном развертывании приложения и использовать, возможно, версию приложения в качестве механизма перебора кеша (например, «js/v1.0.0/app.js»). Это может быть сделано через фильтр сервлета.

2) Поскольку проект представляет собой динамичный веб-проект maven, есть какой-то плагин, который делает такие вещи. Я смотрел на wro4j, чтобы узнать, может ли это сделать, но из тех немногих, что я читал об этом, он в основном используется для обработки этих JS и CSS, что тоже очень полезно.

Какой правильный подход? Заранее спасибо

+1

ли вы использовать строку запроса, как в обычной практике для CMS», таких как Drupal? Пример URL: путь/в/file.js? 123456 Пример URL после следующего развертывания: путь/в/file.js? 123456? [UNIX TIMESTAMP/RANDOM STRING/SOME VAR] – jonathanbell

+0

Имейте это же требование прямо сейчас. Что вы делали в конце @Kruiz – Neoryder

+0

Я долгое время использовал стек Microsoft. Я заинтересован в том, чтобы найти лучшие практики для связывания, минимизации и кэширования, теперь я работаю со стеклом Java, Spring и Tomcat. Я понимаю, что это старый пост, но можете ли вы поделиться своими выводами? Спасибо! -V –

ответ

-1

вы должны добавить версии ваших статических ресурсов или отключить кэширование в браузере

+0

Отключение кеша на самом деле не является удобным. –

0

Я не знаю, о «правильном» подходе, но наиболее распространенным решением является использование версий статических файлов, например, приложение .js станет приложение-14gd54646rfw3.js число, как правило, MD5 контента, таким образом, она будет меняться только тогда, когда файл изменяется

с весной вы достигаете его встроенным механизмом, как описано в следующей ссылке http://www.baeldung.com/cachable-static-assets-with-spring-mvc

если вы хотите использовать Maven плагин с конкатенацией и Минимизации способности, которые вы можете использовать глоток или хрюкать задачи в качестве строительных инструментов

вы можете найти более подробную информацию здесь https://css-tricks.com/strategies-for-cache-busting-css/