API 게시글 상대 URL 가져오기

모두 안녕하세요

저는 discourse API를 사용하여 특정 Topic과 그 안의 모든 게시글을 가져오고, 각 게시글의 내용까지 가져오고 있습니다.

제 포럼은 forums.xxx.com에 호스팅되어 있습니다.
API를 사용하여 게시글을 가져와 www.xxx.com 도메인에 표시하고, 두 사이트 간에 링크를 오가도록 설정했습니다.

이 모든 것이 작동하지만, 가져온 콘텐츠는 상대 URL을 사용합니다. 따라서 포럼 도메인에서 사용자에 대한 링크는 forums.xxx.com/u/the-user 형태가 됩니다.

그 게시글을 제 www.x 도메인으로 가져오면, 링크가 www.xxx.com/u/the-user로 표시되는데, 이는 당연히 존재하지 않습니다.

게시글에 포함된 이모지나 이미지 링크도 같은 문제가 발생하여 링크가 깨집니다.

가져오는 링크(저는 content: data['cooked']를 사용합니다)가 원래 도메인으로 다시 연결되도록 하는 방법이 있을까요?

사실 저는 ChatGPT에게도 같은 질문을 했는데, 바로 작동하는 답변을 받았습니다.

cooked 데이터 내부의 URL을 대체하기 위한 헬퍼 메서드를 사용하는 방식입니다.

def update_urls(content)
    forum_domain = 'https://forums.xxx.com'

    # Update href attributes
    content.gsub!(/href="(\/[^"]*)"/i) { |match| "href=\"#{forum_domain}#{$1}\"" }

    # Update src attributes
    content.gsub!(/src="(\/[^"]*)"/i) { |match| "src=\"#{forum_domain}#{$1}\"" }

    content
  end

그래서 다른 분들도 참고하시라고 여기에 남겨두겠습니다. 더 우아하고 기본 제공되는(out of the box) 솔루션이 있으신 분이 계시다면 관심 있습니다.