Bestes Vorgehen zum Hochladen von Bildern in ein Plugin/ein Theme?

Ich möchte Bildsymbole als Teil meines Themes oder Plugins (ich benutze beides) hochladen. Ich werde dann von einer Glimmer-Komponente im Plugin darauf verweisen. Ich muss die Zeichenfolge der Bild-URL abrufen können, da ich sie in einer Ajax-Anfrage an einen anderen Server sende. (Der Remote-Server bettet Symbole in QR-Codes ein, falls Sie es wissen möchten.)

Wenn ich meine Bilder in about.json im Theme platziere, werden sie nicht an einem deterministischen Ort abgelegt – stattdessen gibt es einen Hash in der URL. Ich weiß also nicht, wie ich außerhalb von CSS darauf verweisen würde, geschweige denn im Plugin.

Wenn ich meine Bilder in einer Admin-Einstellung für das Plugin als uploaded_image_list platziere, sind die Speicherorte ebenfalls nicht deterministisch, und außerdem landen sie in einem Array ohne menschenlesbaren Namen/Tag/Alias, auf den man sich beziehen könnte.

// console.log(this.siteSettings.county_fence_available_icons):
/uploads/default/original/1X/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg|/uploads/default/original/1X/b16cecd70e4d25abdf06a8b6135ec126d2c6ce2d.jpeg|/uploads/default/original/1X/b4c049256c1068e531e43f1622ada78c5b2070b3.jpeg|/uploads/default/original/1X/4aa457c9cd939e178eb251682a4438cc027b96e9.jpeg

Gibt es also eine Möglichkeit, Bilder entweder im Theme oder im Plugin so hochzuladen, dass sie an einer deterministischen URL landen?

Diese Frage bezieht sich auch auf alle anderen Assets, die eine Person hochladen möchte. Sowohl der assets-Abschnitt von about.json als auch die Funktion register_asset, die in plugin.rb verwendet werden soll, scheinen in der Lage zu sein, andere Dateitypen als Schriftarten zu verarbeiten, aber wenn diese Dateien hochgeladen werden, habe ich keine Ahnung, wo sie sich befinden.

1 „Gefällt mir“

Nein. Sie verweisen auf sie über den Variablennamen, wie Sie es getan haben? Alle Uploads werden als Hash ihres Inhalts gespeichert.

1 „Gefällt mir“

Auch wenn Sie die URL nicht festlegen können, ist sie deterministisch, da die URL aus dem SHA1-Hash der Datei besteht.

Solange Sie den Dateiinhalt nicht ändern, sollte sie entweder unter

/uploads/<instanzname>/original/1X/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

oder

/uploads/<instanzname>/original/2X/1/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

oder

/uploads/<instanzname>/original/3X/1/7/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

oder

/uploads/<instanzname>/original/4X/1/7/6/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

landen (und welche davon hängt von der Anzahl der bereits vorhandenen Uploads ab hier).

3 „Gefällt mir“

Was Plugins angeht, werden Hard Assets (solche, die nicht durch Admin-Konfiguration modifizierbar sind) eine klare URL haben.

Sie können die Initialisierer des Discourse Math Plugins referenzieren:

Assets im Verzeichnis /public sind unter dem Plugin-Namen verfügbar. Diese Assets werden direkt aufgerufen, ohne dass sie in plugin.rb registriert werden müssen.

3 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.