이 문제를 몇 번이나 이렇게 디버깅해야 해서 복잡합니다. 이해해 주세요.
아래 스크립트를 실행하고 출력을 여기에 공유해 주세요
# 디버깅하려는 토픽 ID 또는 URL로 교체하세요
topic_id = 386983
# 1. TopicEmbed의 존재 여부와 콘텐츠 확인
te = TopicEmbed.find_by(topic_id: topic_id)
puts "TopicEmbed 존재 여부: #{te.present?}"
puts "임베드 URL: #{te&.embed_url}"
puts "콘텐츠 캐시 존재 여부: #{te&.embed_content_cache.present?}"
puts "콘텐츠 캐시 길이: #{te&.embed_content_cache&.length || 0}"
puts "콘텐츠 SHA1: #{te&.content_sha1}"
# 2. 실제 캐시된 콘텐츠 확인 (첫 500자)
puts "\n--- 캐시된 콘텐츠 미리보기 ---"
puts te&.embed_content_cache&.truncate(500)
# 3. 원격 URL에서 가져오기 시도
if te&.embed_url.present?
puts "\n--- 원격 가져오기 시도 중 ---"
begin
response = TopicEmbed.find_remote(te.embed_url)
puts "원격 가져오기 성공 여부: #{response.present?}"
puts "원격 본문 존재 여부: #{response&.body.present?}"
puts "원격 본문 길이: #{response&.body&.length || 0}"
puts "원격 제목: #{response&.title}"
puts "원격 본문: #{response&.body&.truncate(500)}"
rescue => e
puts "원격 가져오기 실패: #{e.message}"
end
end
# 4. expanded_for가 반환할 내용 확인
if te.present?
puts "\n--- expanded_for 테스트 ---"
post = Post.find(te.post_id)
# 캐시 초기화로 새로운 가져오기 강제
Discourse.cache.delete("embed-topic:#{topic_id}")
begin
expanded = TopicEmbed.expanded_for(post)
puts "확장된 콘텐츠 존재 여부: #{expanded.present?}"
puts "확장된 콘텐츠 길이: #{expanded&.length || 0}"
rescue => e
puts "expanded_for 실패: #{e.message}"
end
end
# 5. 관련 설정 확인
puts "\n--- 사이트 설정 ---"
puts "embed_truncate: #{SiteSetting.embed_truncate}"
puts "allowed_embed_selectors: #{SiteSetting.allowed_embed_selectors}"
puts "blocked_embed_selectors: #{SiteSetting.blocked_embed_selectors}"
이것은 https://tecnoblog.net/comunidade/t/governo-renova-app-da-cnh-para-baratear-obtencao-do-documento/157462?u=falco 가 왜 실패하는지 보여줄 것입니다