안녕하세요,
최근 저는 Discourse 테마 컴포넌트(GitHub - Beholder-Vision/discourse-insert-model-3d: A Discourse theme component for adding 3D models to topics · GitHub)를 작성했습니다. 이 컴포넌트는 Discourse 관리자가 포럼에서 3D 모델의 업로드와 표시를 활성화할 수 있도록 해줍니다.
처음에는 잘 작동하는 것 같았지만, 업로드된 일부 모델이 사라졌다는 보고를 받고 제 포럼을 확인해보니 업로드된 에셋(3D 모델과 포스터 이미지)도 정리(purge)되어 있음을 알게 되었습니다. Insert Model 3D - #2 by patrickemin
문서(Understanding Uploads, Images, and Attachments)를 읽었을 때, 업로드된 에셋은 게시물에 참조되고 있으므로 안전할 것이라고 생각했습니다. 하지만 좀 더 파고들어보니 서버에서 업로드를 식별하는 역할을 하는 것으로 보이는 이 코드(discourse/app/models/post.rb at 03bb43f7468d3aa6e73bba0805193ae50c7ec2d5 · discourse/discourse · GitHub)를 발견했습니다. 제가 파악한 바로는, 업로드된 파일이 게시물에 참조된 것으로 간주되려면 제한된 수의 HTML 태그 중 하나로 참조되어야 합니다. 따라서 <a> 요소의 href 속성으로 참조된 링크된 업로드는 인식되지만, <model-viewer> 요소의 src 속성으로 참조된 경우(제 새로운 테마 컴포넌트가 추가하는 것)에는 인식되지 않습니다.
해당 코드에 익숙한 분이 제 이해가 맞는지 확인해 주실 수 있을까요? 만약 제 이해가 맞다면, 테마 컴포넌트를 만드는 사람들이 에셋을 업로드로 표시하기 위해 해당 에셋을 참조하는 숨겨진 <a> 링크를 생성할 수 있을 것이라 생각합니다. 하지만 문서(Understanding Uploads, Images, and Attachments)에 이러한 함정이 강조되도록 업데이트되면 정말 유용할 것 같습니다.
감사합니다.
Alan