Melhor maneira de enviar imagens para um plugin/tema?

Gostaria de carregar ícones de imagem como parte do meu tema ou plugin (uso ambos). Em seguida, farei referência a eles a partir de um componente glimmer no plugin. Preciso ser capaz de obter a URL da string da localização da imagem, porque a estou enviando para outro servidor em uma solicitação ajax. (O servidor remoto incorpora ícones em códigos QR, se você quiser saber.)

Se eu colocar minhas imagens em about.json no tema, elas não são colocadas em um local determinístico - em vez disso, há um hash na URL. Portanto, não sei como me referiria a elas fora do CSS, muito menos no plugin.

Se eu colocar minhas imagens em uma configuração de administrador para o plugin como uma uploaded_image_list, as localizações também são indeterminísticas e, o que é pior, elas acabam em um array sem um nome/tag/alias legível por humanos para me referir a elas.

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

Então, existe uma maneira de eu carregar imagens, seja para o tema ou plugin, de forma que elas acabem em uma URL determinística?

Esta pergunta também se refere a quaisquer outros ativos que uma pessoa gostaria de carregar. Tanto a seção assets de about.json quanto a função register_asset a ser usada em plugin.rb parecem ser capazes de lidar com outros tipos de arquivo além de fontes, mas se esses arquivos estão sendo carregados, não tenho ideia de onde eles estão.

1 curtida

Não. Você se refere a elas pelo nome da variável, como parece que você fez? Todos os uploads são salvos como um hash de seu conteúdo.

1 curtida

Embora você não possa definir o URL, ele é determinístico, pois o URL é composto pelo hash SHA1 do arquivo.
Desde que você não altere o conteúdo do arquivo, ele deverá acabar em

/uploads/<nome da instância>/original/1X/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

ou

/uploads/<nome da instância>/original/2X/1/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

ou

/uploads/<nome da instância>/original/3X/1/7/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

ou

/uploads/<nome da instância>/original/4X/1/7/6/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

(e qual deles depende do número de uploads que você já tem).

3 curtidas

Quanto aos plugins, ativos fixos (aqueles não modificáveis por configuração de administrador) terão uma URL clara.

Você pode consultar os inicializadores do plugin Discourse Math:

Ativos no diretório /public estarão disponíveis sob o nome do plugin. Esses ativos são chamados diretamente sem a necessidade de serem registrados em plugin.rb.

3 curtidas

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