# 受限制的上传识别码使得编写使用上传资产的主题组件变得困难

**URL:** https://meta.discourse.org/t/restrictive-upload-identification-code-makes-it-tricky-to-write-theme-components-that-use-uploaded-assets/342757
**Category:** Feature
**Created:** [2024年十二月16日 21:29 UTC](https://meta.discourse.org/t/restrictive-upload-identification-code-makes-it-tricky-to-write-theme-components-that-use-uploaded-assets/342757 "2024-12-16T21:29:00Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![abroun\_beholder](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/abroun_beholder/32/468190_2.png) [@abroun\_beholder](https://meta.discourse.org/u/abroun_beholder)
#### Post date: [2024年十二月16日 21:29 UTC](https://meta.discourse.org/t/restrictive-upload-identification-code-makes-it-tricky-to-write-theme-components-that-use-uploaded-assets/342757/1 "2024-12-16T21:29:00Z")

</div>

大家好，

最近我写了一个 Discourse 主题组件 ([GitHub - Beholder-Vision/discourse-insert-model-3d: A Discourse theme component for adding 3D models to topics](https://github.com/Beholder-Vision/discourse-insert-model-3d))，它允许 Discourse 管理员在他们的论坛上上传和显示 3D 模型。

起初一切似乎都运行良好，直到我收到报告说一些上传的模型消失了，然后我在自己的论坛上检查时发现上传的资源（3D 模型和海报图片）也被清理了 [Insert Model 3D - #2 by patrickemin](https://meta.discourse.org/t/insert-model-3d/338558/2?u=abroun_beholder%E3%80%82)

阅读文档 ([Understanding Uploads, Images, and Attachments](https://meta.discourse.org/t/understanding-uploads-images-and-attachments/275735)) 时，我曾以为上传的资源会没问题，因为它们被帖子引用了，但在进行了一些挖掘后，我发现了这段代码 [discourse/app/models/post.rb at 03bb43f7468d3aa6e73bba0805193ae50c7ec2d5 · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/03bb43f7468d3aa6e73bba0805193ae50c7ec2d5/app/models/post.rb#L1137%EF%BC%8C%E5%AE%83%E4%BC%BC%E4%B9%8E%E5%9C%A8%E5%81%9A%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E4%B8%8A%E4%BC%A0%E5%86%85%E5%AE%B9%E7%9A%84%E5%B7%A5%E4%BD%9C%E3%80%82%E6%A0%B9%E6%8D%AE%E6%88%91%E7%9A%84%E7%90%86%E8%A7%A3%EF%BC%8C%E5%8F%AA%E6%9C%89%E5%BD%93%E4%B8%8A%E4%BC%A0%E7%9A%84%E6%96%87%E4%BB%B6%E8%A2%AB%E6%9C%89%E9%99%90%E7%9A%84) HTML 标签之一引用时，才被认为是由帖子引用的。因此，如果一个链接的上传文件被 `<a>` 元素的 `href` 属性引用，它将被识别，但如果它被 `<model-viewer>` 元素的 `src` 属性引用（这是我的新主题组件添加的内容），则不会被识别。

能否请熟悉这段代码的人确认我的理解是否正确？如果正确，我认为创建主题组件的人可以通过生成一个引用该资源的隐藏 `<a>` 链接来将资源标记为上传内容，但如果文档 ([Understanding Uploads, Images, and Attachments](https://meta.discourse.org/t/understanding-uploads-images-and-attachments/275735)) 能更新以突出这个陷阱，那将非常有帮助。

非常感谢  
Alan

---

_[View the full topic](https://meta.discourse.org/t/restrictive-upload-identification-code-makes-it-tricky-to-write-theme-components-that-use-uploaded-assets/342757)._
