Frage

Derzeit habe ich eine Anwendung, die für vererbte Seiteninhalt eines Basepage, die als Header (Panel), Footer (Platte) und in der Mitte besteht. Das Problem, das ich in laufen lasse ist mit ResourceReferences (Vielleicht ist dies auch nicht der richtige Weg). Ich bin auf der Suche nach einer Lösung, die ich erlauben, folgendes zu tun:

  1. Haben Sie ein einziges Verzeichnis für global verwendeten Bilder, js, css
  2. Register (oder nicht) die Ressourcen, so dass sie von jeder Seite geerbt oder Geschwister Seiten Basepage zugänglich sein können, ich könnte in der Zukunft
  3. erstellen
  4. Lassen Sie diese Ressourcen zugänglich innerhalb CSS und JS (z Urls Bilder)
  5. sein

Bisher habe ich durch einige Beispiele lesen, die zeigen, wie Ressource für eine Komponente oder Anwendungsebene Umfang zu verpacken, aber keine, die alle drei Probleme zu lösen scheinen ich Hilfe suchen mit. Es ist wichtig, dass ich muß nicht kopieren global verwendete Bilder (Bearbeiten-Symbol, Logos, etc.) in jede Komponente Paket zur Referenzierung, und es wäre aus Wartungsgründen schön, dass diese Bindungen an einem Ort global für eine einfache Referenz gemacht werden und Aktualisierung.

War es hilfreich?

Lösung

Dies hat sich seit Wicket 1.4 geändert. Bitte finden Sie unter 'Hinzufügen von Javascript oder CSS eine Ressource‘in Wicket Wiki

Um Bilder zu machen und andere Ressourcen global zugänglich (vor allem von CSS und JS-Dateien), montieren sie in Ihren Anwendungen der Methode init ():

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

Es ist absolut keine Notwendigkeit, Ressourcen zu kopieren in keiner Weise. Ressourcen müssen nicht als Komponente selbst in den gleichen Paketen sein. In unseren Anwendungen setzen wir global Ressourcen in eine spezielle Pakete verwendet (sagen com.example.myapp.images) und setzen eine einzige Klasse in ihm (z ImagesScope.java) - gleiche für JS und CSS.

Für Bilder, werden Sie nicht ResourceReference benötigen, da Sie nicht diese Verweise in Ihrem Code (außer org.apache.wicket.markup.html.image.Image) gerendert müssen. Für JS und CSS Verwendung

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

Übrigens, ich bin der Autor eines kleine Bibliothek rel="nofollow genannt wicketstuff-fusionierten-Ressourcen erhältlich von GitHub. Bei Verwendung dieser Bibliothek können Sie die manuelle Montage in Ihrer Anwendung init () und Anmerkungen überspringen verwenden statt.

EDIT: aktualisierte Link. leider Dokumentation im Wiki wicketstuff scheint nun verschwunden zu sein. Es gibt einige Artikel auf unserem Blog though.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top