Een webresource maken
Doel
Een webresource toevoegen — een applicatiebestand zoals een JavaScript-bundel, een stijlblad, een HTML-fragment, een logo of een SVG — dat het platform in de database opslaat en met je oplossing verpakt, zodat het meereist naar elke plek waar de oplossing wordt geïmporteerd.
Een webresource is bedoeld voor de bestanden waaruit een applicatie is opgebouwd. Een groot document dat een gebruiker tijdens het gebruik uploadt, is geen webresource — dat hoort in bestandsopslag. Een groottelimiet per bestand houdt de twee uit elkaar.
Vereisten
- Je bent aangemeld bij het Beheercentrum.
- Er is een omgeving geselecteerd in de bovenbalk, en je hebt een oplossing geopend (zie Een oplossing maken).
Stappen
- Kies in de geopende oplossing Webresources in de linkernavigatie.
- Selecteer Nieuw.
- Voer een weergavenaam en een logische naam in. De logische naam heeft het voorvoegsel van
de uitgever en is opgebouwd als een pad — bijvoorbeeld
par_/dashboard/app.jsofpar_/logo.svg. - Kies het type (JavaScript, CSS, HTML, JSON, XML, tekst, PNG, JPEG, GIF, SVG, pictogram, of overig/binair).
- Geef de inhoud op:
- Voor een teksttype (JavaScript, CSS, HTML, JSON, XML, tekst, SVG) kun je de inhoud direct bewerken in de editor of een bestand uploaden.
- Voor een afbeelding of binair type upload je een bestand (er valt niets te typen).
- Selecteer Opslaan. Het bestand wordt met de oplossing opgeslagen en kan door het platform worden geleverd.
- De lijst toont voor elk bestand het Adres waarop het platform het serveert. Open het in een nieuw tabblad, of kopieer het met de knop ernaast, om het door te geven aan wat het bestand ophaalt.
Een map uploaden met bestanden die naar elkaar verwijzen
Een pagina die haar stylesheet, script en afbeeldingen via een relatief adres laadt, heeft al die bestanden naast elkaar nodig. In plaats van ze een voor een aan te maken:
- Zip de bestanden: de bestanden zelf, niet een map eromheen.
- Kies op Webresources de optie Een map uploaden.
- Geef een weergavenaam en een map onder het voorvoegsel van je uitgever, bijvoorbeeld
par_/badge. - Kies de zip en kies Uploaden.
Elk bestand wordt onder die map aangemaakt met behoud van het relatieve pad, zodat
badge.html die naar badge.css verwijst, par_/badge/badge.css vindt.
Opnieuw uploaden naar dezelfde map vervangt wat er staat en verwijdert bestanden die niet meer
in de nieuwe zip zitten. Zo publiceer je een wijziging, want een webresource bewerk je niet ter
plekke. Bestanden die het platform niet serveert, zoals een .map, worden overgeslagen, en het
resultaat zegt welke.
Een aangepaste app of besturingselement upload je hier niet. Elk is één pakket, geïnstalleerd onder Aangepaste apps of Aangepaste besturingselementen (zie Een aangepast besturingselement registreren).
Wat er achter de schermen gebeurt
De bytes van het bestand worden in de platformdatabase opgeslagen en vastgelegd als component van je oplossing, dus bij het exporteren van de oplossing gaat het bestand mee, en bij het importeren van de oplossing wordt het in de doelomgeving opnieuw aangemaakt. Het platform valideert de metagegevens van het bestand, controleert of de logische naam begint met het voorvoegsel van je uitgever, en weigert een bestand dat boven de groottelimiet uitkomt — een groot bestand hoort in bestandsopslag. Daarna kan het platform het bestand vanaf zijn eigen adres leveren met het juiste inhoudstype.
Het Adres in de lijst is …/environments/<omgeving>/webresources/<logische naam>, en het
antwoordt iedereen, zonder aanmelden: daardoor kan een pagina, een printer of een e-mail het
bestand laden. Zet niets in een webresource dat je niet zou publiceren.
Problemen oplossen
- "…must start with the publisher prefix…" — de logische naam moet beginnen met het voorvoegsel
van je uitgever, gevolgd door
_(bijvoorbeeldpar_). - "The web resource manifest is invalid…" — de logische naam moet in kleine letters zijn en mag
alleen letters, cijfers,
_,.,/of-bevatten (geen spaties). - "…is over the … cap. Large files belong in Object Storage…" — het bestand is groter dan de groottelimiet per resource; sla grote bestanden op in bestandsopslag, niet in een webresource.
- "A web resource '…' already exists in this environment." — er bestaat al een resource met die logische naam; kies een andere naam.
- "The bundle entry '…' has a path that would escape its folder." — de zip bevat een
..-segment of een absoluut pad. Zip de bestanden zelf, niet een pad erboven. - "The bundle holds no files the platform can serve." — niets in de zip heeft een type dat het platform serveert. Controleer of je de bestanden hebt gezipt en niet een andere map.
- "The bundle holds … files; the limit is 200." — vrijwel zeker is de verkeerde map gezipt
(meestal
node_modules).
Gerelateerde scenario's
- Een oplossing maken.
- Een aangepaste React-app registreren.