Assets Protocols
webforJ ondersteunt aangepaste assetprotocollen die gestructureerde en efficiënte toegang tot middelen mogelijk maken. Deze protocollen abstraheren de complexiteit van de statische en dynamische middelenver retrieval, zodat assets naadloos binnen de app worden opgehaald en geïntegreerd.
Het webserverprotocol
Het ws://
protocol stelt je in staat om assets op te halen die gehost zijn in de statische map van een webforJ-app. Alle bestanden die zich bevinden binnen de app-classpath src/main/resources/static
zijn rechtstreeks toegankelijk vanuit de browser. Als je bijvoorbeeld een bestand hebt met de naam css/app.css in resources/static, kan dit worden benaderd op: /static/css/app.css
Het ws:// protocol verwijdert de noodzaak om het static
voorvoegsel in je resource-URL's hardcoded in te voeren, waardoor het veilig is tegen veranderde voorvoegsels afhankelijk van de implementatiecontext. Als de web-app onder een context anders dan de root is geïmplementeerd, zoals /mycontext, zou de URL voor css/app.css zijn: /mycontext/static/css/app.css
Je kunt het static
voorvoegsel beheersen met de webforj-configuratie optie webforj.assetsDir
. Deze instelling specificeert de route naam die gebruikt wordt om statische bestanden te serveren, terwijl de fysieke map de naam static
behoudt. Dit is bijzonder nuttig als de standaard statische route in conflict komt met een route in jouw app, omdat het je in staat stelt de routenaam te wijzigen zonder de mapnaam te hoeven wijzigen.
Je kunt de Assets
hulpprogramma-class gebruiken om een gegeven webserver-URL op te lossen. Dit kan nuttig zijn als je een aangepast component hebt dat dat protocol moet ondersteunen.
String url = Assets.resolveWebServerUrl("ws://js/app.js");
Het contextprotocol
Het contextprotocol verwijst naar middelen binnen de classpath van de app op src/main/resources
. Sommige resource API-methoden en annotaties ondersteunen dit protocol om de inhoud van een bestand in de resources-map te lezen en de inhoud naar de browser te verzenden. De InlineJavaScript
annotatie, bijvoorbeeld, maakt het mogelijk om de inhoud van een JavaScript-bestand vanuit de resources-map te lezen en inline weer te geven aan de clientzijde.
Bijvoorbeeld:
String content = Assets.contentOf(
Assets.resolveContextUrl("context://data/customers.json")
);
Het iconenprotocol
Het icons://
protocol biedt een dynamische benadering van iconenbeheer, waardoor het efficiënt en flexibel is voor het genereren en serveren van iconen in installeerbare apps. Dit protocol stelt je in staat om iconen on-the-fly te genereren op basis van de gevraagde bestandsnaam en parameters, waardoor in veel gevallen de behoefte aan vooraf gegenereerde iconen wordt geëlimineerd.
Img icon = new Img("icons://icon-192x192.png")
Basisicoon
Wanneer een icoon wordt aangevraagd met het icons://
protocol, wordt een basisafbeelding dynamisch afgeleid van de gevraagde iconenbestandsnaam. Dit zorgt voor consistentie in het iconontwerp en maakt automatische terugval naar een standaardafbeelding mogelijk als er geen basisicoon wordt opgegeven.
- Voorbeeld 1: Aanvraag:
/icons/icon-192x192.png
→ Basisicoon:resources/icons/icon.png
- Voorbeeld 2: Aanvraag:
/icons/icon-different-192x192.png
→ Basisicoon:resources/icons/icon-different.png
Als er geen basisafbeelding bestaat voor het aangevraagde icoon, wordt het standaard webforJ-logo gebruikt als terugval.
webforj.iconsDir
Standaard serveert webforJ iconen vanuit de resources/icons/
directory. Je kunt de eindpuntnaam wijzigen door de webforj.iconsDir
eigenschap in het webforJ-configuratiebestand in te stellen. Dit verandert alleen de URL-eindpunt die wordt gebruikt om toegang tot de iconen te krijgen, niet de daadwerkelijke mapnaam. Het standaard eindpunt is icons/
.
Iconen Overschrijven
Je kunt specifieke iconenformaten overschrijven door vooraf gegenereerde afbeeldingen in de resources/icons/
directory te plaatsen. Dit biedt meer controle over het uiterlijk van iconen wanneer bepaalde formaten of stijlen moeten worden aangepast.
- Voorbeeld: Als
resources/icons/icon-192x192.png
bestaat, zal dit rechtstreeks worden geleverd in plaats van dynamisch te worden gegenereerd.
Het uiterlijk van iconen aanpassen
Het icons://
protocol ondersteunt aanvullende parameters die je in staat stellen het uiterlijk van dynamisch gegenereerde iconen aan te passen. Dit omvat opties voor padding en achtergrondkleur.
-
Padding: De parameter
padding
kan worden gebruikt om de padding rond het icoon te beheersen. Geaccepteerde waarden variëren van0
, wat geen padding betekent, tot1
, wat maximale padding betekent.- Voorbeeld:
/icons/icon-192x192.png?padding=0.3
- Voorbeeld:
-
Achtergrondkleur: De parameter
background
stelt je in staat om de achtergrondkleur van het icoon in te stellen. Het ondersteunt de volgende waarden:transparent
: Geen achtergrondkleur.
- Hexadecimale kleurcodes: Aangepaste achtergrondkleuren (bijv.
FFFFFF
voor wit).
auto
: Probeert automatisch de achtergrondkleur van het icoon te detecteren.
Bijvoorbeeld:
- Voorbeeld 1:
/icons/icon-192x192.png?background=000000
- Voorbeeld 2:
/icons/icon-192x192.png?background=auto