プラグイン/テーマに画像をアップロードする一番良い方法

テーマまたはプラグインの一部として画像アイコンをアップロードしたいと考えています(両方使用しています)。その後、プラグイン内のGlimmerコンポーネントからそれらを参照します。Ajaxリクエストで別のサーバーに送信するため、画像場所の文字列URLを取得する必要があります。(リモートサーバーはQRコードにアイコンを埋め込みます。)

テーマのabout.jsonに画像を配置すると、URLにハッシュが含まれるため、決定論的な場所には配置されません。そのため、CSS以外で、ましてやプラグイン内で参照する方法がわかりません。

プラグインの管理設定にuploaded_image_listとして画像を配置すると、場所は決定論的ではなく、さらに人間が読める名前/タグ/エイリアスなしで配列に格納されてしまいます。

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

したがって、テーマまたはプラグインに画像をアップロードし、決定論的なURLで配置する方法はありますか?

この質問は、アップロードしたい他のアセットにも関連します。about.jsonassetsセクションと、plugin.rbで使用されるregister_asset関数の両方とも、フォント以外のファイルタイプを処理できる可能性があるように見えますが、それらのファイルがアップロードされている場合、どこにあるのかわかりません。

「いいね!」 1

いいえ。変数名で参照するのですか?すべてのアップロードは、その内容のハッシュとして保存されます。

「いいね!」 1

URLを設定することはできませんが、ファイルの内容のSHA1ハッシュで構成されているため、決定論的です。

ファイルの内容を変更しない限り、次のいずれかのURLになります。

/uploads/<インスタンス名>/original/1X/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

または

/uploads/<インスタンス名>/original/2X/1/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

または

/uploads/<インスタンス名>/original/3X/1/7/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

または

/uploads/<インスタンス名>/original/4X/1/7/6/1764ca1c70c7f4f7f01da26e702639fd8cfe2bf4.jpeg

(どちらになるかは、すでにアップロードした数によって異なります)。

「いいね!」 3

プラグインに関しては、ハードアセット(管理者の設定で変更できないもの)には明確なURLが設定されます。

Discourse Math プラグインのイニシャライザーを参照できます。

/public ディレクトリ内のアセットは、プラグイン名の下で利用可能になります。これらのアセットは、plugin.rb で登録する必要なく直接呼び出されます。

「いいね!」 3

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