CSS-файл с добавлением версии
Я хочу создать способ автоматического обновления ссылок на css-файлы в jsf (через ant и т. Д.). Какова общая практика для этого? уже есть какие-нибудь автоматизированные инструменты?
По сути, я хочу иметь возможность развернуть мой war-файл и убедиться, что любые изменения модифицированные css-файлы загружаются клиентами без необходимости очищать кэш. Спасибо за помощь!
1 ответ
Вы можете использовать встроенную версию библиотеки ресурсов JSF. Вам нужно только ввести библиотеку ресурсов в веб-приложение /resources
папка, если еще не сделано. Затем вы можете создать подпапку версии с шаблоном \d(_\d)*
, Например,
/resources/default/1_0/css/layout.css
На что вы ссылаетесь следующим образом:
<h:outputStylesheet library="default" name="css/layout.css" />
Версия библиотеки добавляется как v
параметр в строке запроса сгенерированного <link>
элемент.
<link type="text/css" rel="stylesheet" href="/contextname/javax.faces.resource/css/layout.js.xhtml?ln=default&v=1_0" />
Когда вам нужно развернуть обновление, переименуйте 1_0
подпапка к 1_1
или что-то другое (может быть сделано с помощью ant), и оно будет обновлено, и браузер будет вынужден загрузить его вместо использования кэшированного.
То же самое относится и к <h:outputScript>
а также <h:graphicImage>
для JS и ресурсов изображения.