Os arquivos CSS não atualizam com o wicket (lançado no Intellij via start.java)
-
21-08-2019 - |
Pergunta
Eu criei um projeto de postigo esqueleto usando
mvn archetype:create -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=1.4-rc4 -DgroupId=com.mycompany -DartifactId=myproject
Toda a configuração/importação do novo projeto com Maven/Intellij funcionou bem. Comecei a adicionar um arquivo CSS básico à minha página inicial, de acordo com a seguinte maneira recomendada de fazê -lo no wicket 1.4
public class BasePage extends WebPage {
public BasePage() {
add(CSSPackageResource.getHeaderContribution(BasePage.class, "main.css"));
}
}
O arquivo main.css foi colocado ao longo do lateral BasePage.java e BasePage.html in/src/main/java. Eu inicio o aplicativo com start.java. O problema é quando faço alterações no arquivo CSS, ele não está sendo retirado quando relanço Start.java. (Alterações nos arquivos Java e HTML estão sendo atualizados quando eu os troco)
Eu certifiquei -me de que o cache do navegador estivesse sendo limpo e até valorizei a solicitação/resposta em Firfox/Firebug. Parece que em algum lugar entre a magia do wicket e a instância do jetty Start.java cria o arquivo CSS está sendo armazenado em cache e não é atualizado. Alguma ideia?
Solução
Eu movi os arquivos CSS para o diretório /webapp e isso parecia resolver o problema de iniciar.java para registrar as alterações. Estou fazendo o mesmo com arquivos e imagens JS. Estranhamente, eu li (em vários sites) pessoas que fazem isso de maneiras diferentes (embora o consenso para as classes HTML e Java seja sempre para tê -las no mesmo lugar).
Outras dicas
Encontro uma outra solução que me ajude. Você pode configurar o wicket para adicionar um registro de data e hora à solicitação de um recurso para resolver o problema do cache. No método init da sua classe Application Call SetAddlastModifiedTimEToresourceReferenceUrl das configurações de Recource.
public class MyApplication extends WebApplication {
@Override
protected void init() {
getResourceSettings().setAddLastModifiedTimeToResourceReferenceUrl(true);
}
}