Настроить аннотацию Java Tapestry @IncludeStylesheet - PullRequest
1 голос
/ 21 января 2011

Используя Tapestry 5, я ищу (если возможно) элегантный способ настроить аннотацию @IncludeStylesheet для автоматического добавления номера версии в имя файла таблицы стилей.

Например

  @IncludeStylesheet("context:/css/decoration.css")

автоматически генерирует включение CSS с v номером ersion

  <link href="/css/decoration.css?v=12345" rel="stylesheet" type="text/css">

Добавление новой аннотации, например @IncludeStylesheetVersion, было моей первоначальной идеей.Глядя на код Tapestry, кажется, что я опережаю некоторое копирование / рефакторинг кода с новыми реализациями RenderSupport и DocumentLinker (среди прочих).

Был бы более простой способ продолжить

Ответы [ 2 ]

4 голосов
/ 21 января 2011

Возможно, вам вообще не придется этого делать: управление версиями активов встроено в Tapestry.Поведение по умолчанию в соответствии с docs :

Tapestry создает новый URL для ресурсов (будь то контекст или путь к классам).URL-адрес имеет вид /assets/application version number/folder/path.

  • номер версии приложения: определяется символом tapestry.application-version, значением по умолчанию является случайное шестнадцатеричное число.

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

Редактировать на основе комментария: Это также доступно в 5.1 :

  • app / app-version (для ресурсовполученный в пакете приложения или ниже)
  • classpath / app-version (для ресурсов, полученных из любого другого
    неотображенного пакета)

Где версия - это версия фреймворка Tapestry, иapp-version - это версия приложения (которая будет случайной строкой, если она не настроена явно).

Просто проверьте URL-адреса, сгенерированные Tapestry для ваших CSS-файлов, они должны выглядеть следующим образом: http://myserver.com/assets/ctx/942f15f778dca26c/css/styles.css

1 голос
/ 01 февраля 2011

В целом, усилия, которые вы приложили бы для обновления до 5.3, вероятно, будут потрачены лучше, чем попытка создать аннотацию, имитирующую встроенную функциональность текущих версий.Я думаю, вы найдете процесс обновления довольно безболезненным, особенно если у вас есть хорошее интеграционное тестирование.

...