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&amp;v=1_0" />

Когда вам нужно развернуть обновление, переименуйте 1_0 подпапка к 1_1 или что-то другое (может быть сделано с помощью ant), и оно будет обновлено, и браузер будет вынужден загрузить его вместо использования кэшированного.

То же самое относится и к <h:outputScript> а также <h:graphicImage> для JS и ресурсов изображения.

Другие вопросы по тегам