Il modo migliore per caricare immagini su un plugin/tema?

Vorrei caricare icone di immagini come parte del mio tema o plugin (uso entrambi). Successivamente vi farò riferimento da un componente glimmer nel plugin. Ho bisogno di poter ottenere l’URL stringa della posizione dell’immagine, perché la sto inviando a un altro server in una richiesta ajax. (Il server remoto incorpora icone in codici QR, se volete saperlo.)

Se metto le mie immagini in about.json nel tema, non vengono collocate in una posizione deterministica - invece c’è un hash nell’URL. Quindi non so come potrei fare riferimento ad esse al di fuori del CSS, tanto meno nel plugin.

Se metto le mie immagini in un’impostazione di amministrazione per il plugin come uploaded_image_list, le posizioni sono anche indeterminate e, per di più, finiscono in un array senza un nome/tag/alias leggibile dall’uomo a cui fare riferimento.

// 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

Quindi c’è un modo per caricare immagini, sia nel tema che nel plugin, in modo che finiscano in un URL deterministico?

Questa domanda riguarda anche qualsiasi altro asset che una persona vorrebbe caricare. Sia la sezione assets di about.json che la funzione register_asset da utilizzare in plugin.rb sembrano in grado di gestire tipi di file diversi dai font, ma se quei file vengono caricati non ho idea di dove siano.

1 Mi Piace

No. Ti riferisci a loro con il nome della variabile come hai fatto? Tutti i caricamenti vengono salvati come hash del loro contenuto.

1 Mi Piace

Anche se non puoi impostare l’URL, questo è deterministico, poiché l’URL è composto dall’hash SHA1 del file.
Finché non modifichi il contenuto del file, questo dovrebbe finire su

/uploads/<nome istanza>/original/1X/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

o

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

o

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

o

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

(e quale di questi dipenda dal numero di caricamenti che hai già qui).

3 Mi Piace

Per quanto riguarda i plugin, gli asset hard (quelli non modificabili dalla configurazione dell’amministratore) avranno un URL chiaro.

Puoi fare riferimento agli initializer del plugin Discourse Math:

Gli asset nella directory /public saranno disponibili sotto il nome del plugin. Questi asset vengono chiamati direttamente senza bisogno di essere registrati in plugin.rb.

3 Mi Piace

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