Файлы CSS не обновляются с помощью Wicket (запущен в Intellij через Start.java)

StackOverflow https://stackoverflow.com/questions/1065865

Вопрос

Я создал проект 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);
    }
}

Оригинал: http://old.nabble.com/Javascript-CSS-being-cached-by-the-browser-even-when-it-has-changed .-Should-setAddLastModifiedTimeToResourceReferenceUrl%28true%29-be-the-default--td14886538.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top