이 가이드는 Discourse에서 원박스(oneboxes)를 설정하고 문제를 해결하는 방법을 설명합니다. 관리자 설정, 원박스의 작동 방식, 그리고 일반적인 문제 해결 단계를 다룹니다.
필요한 사용자 권한: 관리자
원박스는 사용자가 게시물에 생성할 수 있는 풍부한 링크 미리보기입니다. 사용자는 이러한 미리보기를 쉽게 생성할 수 있지만, 사이트 관리자는 추가적인 제어 기능을 가지고 있으며, 링크가 예상대로 미리보기로 표시되지 않을 때 문제를 해결해야 할 수 있습니다.
관리자 설정
원박스 설정을 관리하려면:
- 관리자 패널로 이동합니다.
- 사이트 설정 섹션으로 이동합니다.
- "onebox"를 검색합니다.
원박스와 관련된 설정 목록을 볼 수 있습니다:
주요 설정은 다음과 같습니다:
post onebox maxlength: 원박스에 포함되는 텍스트 양을 제어합니다.max oneboxes per post: 단일 게시물에 표시될 수 있는 원박스의 수를 제한합니다(기본값: 50).enable inline onebox on all domains: 모든 도메인에서 인라인 원박스를 활성화하여 일반 URL을 링크된 제목으로 변환합니다(예:https://en.wikipedia.org/wiki/Fun_(band)가 "Fun (band) - Wikipedia"로 변경됨). 기본적으로 활성화되어 있습니다.blocked onebox domains: 특정 도메인에 대한 원박스를 비활성화할 수 있습니다.block onebox on redirect: 활성화하면 다른 위치로 리디렉션되는 URL의 원박싱을 방지합니다.
원박스의 작동 방식
게시물에 링크가 포함되면, Discourse는 대상 페이지를 방문하여 Open Graph 또는 oEmbed 태그를 찾습니다. 여기에는 다음이 포함됩니다:
- 사이트 주소
- 제목
- 대표 이미지
- 사이트 아이콘(또는 파비콘)
- 설명(필수)
- 제품 가격(관련된 경우)
Discourse는 설명 태그가 존재하고 페이지를 요약할 수 있는 충분한 텍스트를 포함해야 합니다. 이가 없으면 대상 링크가 원박싱되지 않습니다.
다음은 사이트 제목, 대표 이미지, 아이콘 및 설명을 보여주는 https://discourse.org의 원박스 예시입니다:
문제 해결
원박스가 예상대로 작동하지 않는 경우, 다음 단계를 시도해 보세요:
-
iFramely를 사용하여 사이트를 테스트합니다:
- 링크를 붙여넣고 올바른 OpenGraph 또는 oEmbed 메타 태그를 사용 중인지 확인합니다.
- 설명 텍스트가 존재하고 충분한지 확인합니다.
-
원박스 요청이 차단되고 있는지 확인합니다:
- 일부 호스트는 “알 수 없는” 사용자 에이전트를 차단할 수 있습니다.
- 대상 웹사이트가 Discourse의 사용자 에이전트를 차단하지 않는지 확인합니다.
-
원박스로 표시되지 않는 내부 링크의 경우:
- 링크가 보안 카테고리 내에 있지 않은지 확인합니다.
- 보안상의 이유로 내부 링크는 공개 카테고리 또는 동일한 카테고리 내에서만 원박싱됩니다.
Rails 콘솔에서 테스트를 수행하면서 다음을 호출하여 원박스를 명시적으로 무효화/검색할 수 있습니다: 메서드
[1] pry(main)> Oneboxer.invalidate(url)
=> 0
[2] pry(main)> Oneboxer.onebox(url)
=> "<aside class=\"onebox …(elided)"
[3] pry(main)> InlineOneboxer.invalidate(url)
=> 0
[4] pry(main)> InlineOneboxer.lookup(url)
=> {url: "https://example.com", title: "Example Page Title"}
