Файлы CSS не обновляются с помощью Wicket (запущен в Intellij через Start.java)
-
21-08-2019 - |
Вопрос
Я создал проект skeleton Wicket, используя
mvn archetype:create -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=1.4-rc4 -DgroupId=com.mycompany -DartifactId=myproject
Вся настройка / импорт нового проекта с помощью Maven / Intellij работала нормально.Я приступил к добавлению базового CSS-файла на свою стартовую страницу в соответствии со следующим рекомендуемым способом сделать это в Wicket 1.4
public class BasePage extends WebPage {
public BasePage() {
add(CSSPackageResource.getHeaderContribution(BasePage.class, "main.css"));
}
}
Файл main.css был помещен рядом с BasePage.java и BasePage.html в /src/main/java.Я запускаю приложение с помощью Start.java.Проблема в том, что когда я вношу изменения в файл CSS, он не распознается при повторном запуске Start.java.(Изменения в файлах java и html обновляются, когда я их изменяю)
Я убедился, что кэш браузера очищается, и даже проверил запрос / ответ в Firfox / Firebug.Похоже, что где-то между Wicket magic и экземпляром jetty Start.java создается файл CSS, который кэшируется и не обновляется.Есть какие-нибудь идеи?
Решение
Я переместил файлы css в каталог / webapp, и это, казалось, решило проблему с получением Start.java для регистрации изменений.Я делаю то же самое для js-файлов и изображений.Как ни странно, я читал (на нескольких сайтах), что люди делают это по-разному (хотя консенсус для классов HTML и Java заключается в том, чтобы всегда размещать их в одном и том же месте).
Другие советы
Я нахожу другое решение, которое помогает мне.Вы можете настроить Wicket на добавление метки времени к запросу ресурса, чтобы решить проблему кэширования.В методе init вашего класса приложения вызовите setAddLastModifiedTimeToResourceReferenceUrl параметров исходного кода.
public class MyApplication extends WebApplication {
@Override
protected void init() {
getResourceSettings().setAddLastModifiedTimeToResourceReferenceUrl(true);
}
}