Pergunta

Atualmente, eu tenho um aplicativo que consiste em um BasePage que como um cabeçalho (painel), rodapé (painel) e no centro de conteúdo da página herdada. O problema que eu estou correndo em é com ResourceReferences (Talvez este não é ainda o caminho certo). Eu estou procurando uma solução que me permite fazer o seguinte:

  1. Tenha um único diretório para imagens utilizadas globalmente, js, css
  2. Register (ou não) desses recursos para que eles possam ser acessíveis a partir de qualquer página herdado ou irmão páginas para BasePage eu poderia criar no futuro
  3. Permita que esses recursos sejam acessíveis dentro de CSS e JS (por exemplo, URLs para imagens)

Até agora eu li através de vários exemplos que mostram como empacotar recursos para um escopo componente ou aplicativo nível, mas nenhum que parecem abordar todos os 3 questões que eu estou procurando ajuda. É fundamental que eu não tenho para copiar imagens utilizadas globalmente (editar ícone, logotipos, etc) em cada pacote de componente para fazer referência, e que seria bom por razões de manutenção que essas ligações serem feitas em um lugar globalmente para facilitar a consulta e atualização.

Foi útil?

Solução

Isto mudou significativamente desde Wicket 1.4. Por favor, consulte 'Adicionando Javascript ou CSS usando um Recurso' em de Wicket Wiki

Para fazer imagens e outros recursos globalmente acessíveis (especialmente a partir de arquivos CSS e JS), montá-los em init das suas Aplicações () método:

mountSharedResource("/images/submit.jpg", new ResourceReference(MyComponent.class, "foo.jpg").getSharedResourceKey());

Existe absolutamente nenhuma necessidade de recursos duplicados de qualquer maneira. Recursos não tem que ser nos mesmos pacotes como o próprio componente. Em nossas aplicações, colocamos usado globalmente recursos em um pacotes dedicados (dizem com.example.myapp.images) e colocar uma única classe nele (por exemplo ImagesScope.java) - mesmo para JS e CSS.

Para imagens, você não vai precisar ResourceReference como você não vai precisar dessas referências prestados no seu código (exceto para org.apache.wicket.markup.html.image.Image). Para JS e uso CSS

add(CSSPackageResource.getHeaderContribution(PanelOne.class, "PanelOne.css"));

A propósito, eu sou o autor de um pequena biblioteca chamada wicketstuff-recursos-fundiu disponível no GitHub. Usando esta biblioteca você pode pular o manual de montagem em init do seu aplicativo () e uso de anotações em seu lugar.

EDIT: link atualizado. Infelizmente, a documentação no wiki wicketstuff parece ter desaparecido agora. Há alguns artigos em nosso blog embora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top