サブフォルダインストールで「投稿全体を表示」ボタンが機能しない

これをデバッグするために、この問題を数回デバッグしなければならず、複雑なので、しばらくお待ちください。

以下のスクリプトを実行し、出力をここに共有してください

# デバッグしているトピック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 が失敗する理由がわかります

「いいね!」 3