bitmage
(Brandon Mason)
1
我希望能够上传图像图标作为我的主题或插件(我两者都使用)的一部分。然后,我将从插件中的 Glimmer 组件引用它们。我需要能够获取图像位置的字符串 URL,因为我将在 AJAX 请求中将其发送到另一个服务器。(如果您想知道,远程服务器会将图标嵌入到 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.json 的 assets 部分以及 plugin.rb 中要使用的 register_asset 函数看起来都能够处理字体以外的其他文件类型,但如果这些文件被上传了,我不知道它们在哪里。
1 个赞
pfaffman
(Jay Pfaffman)
2
不可以。您是通过变量名来引用它们,就像您刚才做的那样吗?所有上传的文件都将以其内容的哈希值形式保存。
1 个赞
RGJ
(Richard - Communiteq)
3
即使您无法设置URL,它也是确定性的,因为URL由文件的SHA1哈希组成。
只要您不更改文件内容,它应该会出现在以下任一位置:
/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
(具体是哪一个取决于您已有的上传数量(https://github.com/discourse/discourse/blob/main/lib/file_store/base_store.rb#L230C1-L234C8)。
3 个赞
Alteras
(Steven Chang)
4
至于插件,硬资产(无法通过管理员配置修改的资产)将具有清晰的 URL。
您可以参考 Discourse Math 插件的初始化程序:
/public 目录中的资产将以插件名称提供。这些资产可以直接调用,无需在 plugin.rb 中注册。
3 个赞
system
(system)
关闭
5
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.