Aller au contenu principal

Créer une ressource web

Objectif​

Ajouter une ressource web — un fichier d’application tel qu’un bundle JavaScript, une feuille de style, un fragment HTML, un logo ou un SVG — que la plateforme stocke dans la base de données et empaquette avec votre solution, afin qu’elle voyage partout où la solution est importée.

Une ressource web sert aux fichiers à partir desquels une application est construite. Un document volumineux qu’un utilisateur téléverse à l’exécution n’est pas une ressource web — sa place est dans le stockage de fichiers. Une limite de taille par fichier sépare les deux.

Prérequis​

  • Vous êtes connecté au Centre de contrôle d’administration.
  • Un environnement est sélectionné dans la barre supérieure, et vous avez ouvert une solution (voir Créer une solution).

Étapes​

  1. Dans la solution ouverte, choisissez Ressources web dans la navigation de gauche.
  2. Sélectionnez Nouveau.
  3. Saisissez un nom d’affichage et un nom logique. Le nom logique est préfixé par l’éditeur et ressemble à un chemin — par exemple par_/dashboard/app.js ou par_/logo.svg.
  4. Choisissez le type (JavaScript, CSS, HTML, JSON, XML, texte, PNG, JPEG, GIF, SVG, icône, ou autre/binaire).
  5. Fournissez le contenu :
    • Pour un type texte (JavaScript, CSS, HTML, JSON, XML, texte, SVG), vous pouvez soit le modifier directement dans l’éditeur, soit téléverser un fichier.
    • Pour un type image ou binaire, vous téléversez un fichier (il n’y a rien à saisir).
  6. Sélectionnez Enregistrer. Le fichier est stocké avec la solution et peut être servi par la plateforme.
  7. La liste affiche l’Adresse de chaque fichier : là où la plateforme le sert. Ouvrez-la dans un nouvel onglet, ou copiez-la avec le bouton à côté, pour la donner à ce qui va chercher le fichier.

Charger un dossier de fichiers qui se référencent​

Une page qui référence sa feuille de style, son script et ses images par adresse relative a besoin de tous ces fichiers côte à côte. Plutôt que de les créer un par un :

  1. Compressez les fichiers en zip : les fichiers eux-mêmes, pas un dossier autour.
  2. Dans Ressources web, sélectionnez Charger un dossier.
  3. Donnez un nom d’affichage et un dossier sous le préfixe de votre éditeur, par exemple par_/badge.
  4. Choisissez le zip et sélectionnez Charger.

Chaque fichier est créé sous ce dossier en conservant son chemin relatif : badge.html, qui référence badge.css, trouve par_/badge/badge.css.

Un nouveau chargement dans le même dossier remplace son contenu et supprime les fichiers que le nouveau zip ne contient plus. C’est ainsi que l’on publie une modification, puisqu’une ressource web ne se modifie pas sur place. Les fichiers que la plateforme ne sert pas, comme un .map, sont ignorés, et le résultat indique lesquels.

Une application ou un contrôle personnalisé ne se charge pas ici. Chacun est un seul package, installé sous Applications personnalisées ou Contrôles personnalisés (voir Enregistrer un contrôle personnalisé).

Ce qui se passe en coulisses​

Les octets du fichier sont stockés dans la base de données de la plateforme et enregistrés comme composant de votre solution : exporter la solution emporte donc le fichier, et importer la solution le recrée dans l’environnement cible. La plateforme valide les métadonnées du fichier, vérifie que le nom logique commence par le préfixe de votre éditeur et rejette un fichier qui dépasse la limite de taille — un fichier volumineux doit aller dans le stockage de fichiers. La plateforme peut ensuite servir le fichier depuis sa propre adresse avec le type de contenu correct.

L’Adresse de la liste est …/environments/<environnement>/webresources/<nom logique>, et elle répond à tout le monde, sans connexion : c’est ce qui permet à une page, une imprimante ou un e-mail de charger le fichier. Ne mettez dans une ressource web rien que vous ne publieriez pas.

Dépannage​

  • « …must start with the publisher prefix… » — le nom logique doit commencer par le préfixe de votre éditeur suivi de _ (par exemple par_).
  • « The web resource manifest is invalid… » — le nom logique doit être en minuscules et ne contenir que des lettres, des chiffres, _, ., / ou - (pas d’espaces).
  • « …is over the … cap. Large files belong in Object Storage… » — le fichier dépasse la limite de taille par ressource ; stockez les fichiers volumineux dans le stockage de fichiers, pas dans une ressource web.
  • « A web resource '…' already exists in this environment. » — une ressource portant ce nom logique existe déjà ; choisissez un autre nom.
  • « The bundle entry '…' has a path that would escape its folder. » — le zip contient un segment .. ou un chemin absolu. Compressez les fichiers eux-mêmes, pas un chemin au-dessus.
  • « The bundle holds no files the platform can serve. » — rien dans le zip n’a un type que la plateforme sert. Vérifiez que vous avez compressé les fichiers et non un autre dossier.
  • « The bundle holds … files; the limit is 200. » — presque certainement le mauvais dossier a été compressé (node_modules, le plus souvent).

Scénarios associés​

  • Créer une solution.
  • Inscrire une application React personnalisée.