Je voudrais télécharger des icônes d’image dans le cadre de mon thème ou plugin (j’utilise les deux). Je devrai ensuite y faire référence à partir d’un composant Glimmer dans le plugin. J’ai besoin de pouvoir obtenir l’URL de la chaîne de caractères de l’emplacement de l’image, car je l’envoie à un autre serveur dans une requête Ajax. (Le serveur distant intègre des icônes dans des codes QR, si vous voulez savoir.)
Si je place mes images dans about.json dans le thème, elles ne sont pas placées à un emplacement déterministe - il y a plutôt un hachage dans l’URL. Je ne sais donc pas comment y faire référence en dehors du CSS, et encore moins dans le plugin.
Si je place mes images dans un paramètre d’administration pour le plugin en tant que uploaded_image_list, les emplacements ne sont pas non plus déterministes, et de plus, elles finissent dans un tableau sans nom/balise/alias lisible par l’homme pour y faire référence.
Existe-t-il donc un moyen de télécharger des images, soit vers le thème, soit vers le plugin, de manière à ce qu’elles se retrouvent à une URL déterministe ?
Cette question concerne également tous les autres actifs qu’une personne voudrait télécharger. La section assets de about.json ainsi que la fonction register_asset à utiliser dans plugin.rbsemblent pouvoir gérer d’autres types de fichiers que les polices, mais si ces fichiers sont téléchargés, je n’ai aucune idée de leur emplacement.
Non. Vous y faites référence par le nom de la variable, comme vous l’avez fait ? Tous les téléchargements sont enregistrés sous forme de hachage de leur contenu.
Même si vous ne pouvez pas définir l’URL, elle est déterministe, car l’URL est constituée du hachage SHA1 du fichier.
Tant que vous ne modifiez pas le contenu du fichier, il devrait se retrouver à l’adresse
/uploads/<nom de l'instance>/original/1X/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg
ou
/uploads/<nom de l'instance>/original/2X/1/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg
ou
/uploads/<nom de l'instance>/original/3X/1/7/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg
ou
/uploads/<nom de l'instance>/original/4X/1/7/6/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg
(et le choix dépend du nombre de téléchargements que vous avez déjà ici).
En ce qui concerne les plugins, les ressources matérielles (celles qui ne sont pas modifiables par la configuration de l’administrateur) auront une URL claire.
Vous pouvez vous référer aux initialiseurs du plugin Discourse Math :
Les ressources du répertoire /public seront disponibles sous le nom du plugin. Ces ressources sont appelées directement sans avoir besoin d’être enregistrées dans plugin.rb.