ReactJS Helmet 元标记不适用于 Twitter 卡片和电报预览

标签 reactjs twitter-card

这是我当前添加元标记的配置:

 {data? <Helmet>
    <title>Site- {data.name ? data.name : ""}</title>
    <meta charSet="utf-8" />
    <meta name="twitter:card" content="summary_large_image" data-react-helmet="true" />
    <meta name="twitter:site" content="@user" data-react-helmet="true" />
    <meta name="twitter:creator" content="@user" data-react-helmet="true" />
    <meta property="og:type" content="website" data-react-helmet="true"/>
    <meta property="og:url" content={document.location.href} data-react-helmet="true" />
    <meta property="og:title" content={data.name ? data.name : ""} data-react-helmet="true" />
    <meta property="og:description" content={data.description?.en?.slice(0, 65) + "..."} data-react-helmet="true" />
    <meta property="og:image" content={data.image?.large} data-react-helmet="true" />
  </Helmet>
    : null}

data 是一个钩子(Hook),当来自数据库的请求完成时被填充。

试穿https://cards-dev.twitter.com/validator返回 无法呈现卡片预览。知道如何修复它吗?

最佳答案

我认为是 CSR(客户端渲染)问题。 Twitter 卡片获取链接的元数据禁用了 JavaScript,因此您需要在服务器响应中填充元数据,在这种情况下您需要 SSR(服务器端渲染)。我建议尝试使用 nextjs.org相反

关于ReactJS Helmet 元标记不适用于 Twitter 卡片和电报预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69015062/

相关文章:

javascript - 嵌入式表达式渲染为数组而不是单个元素

ruby-on-rails - 如何将元标记图像引用放入 slim 中?

tweets - 使图像元标记动态化,Twitter 卡不显示图像

twitter - Twitter 的 URL 爬虫执行 JavaScript 吗?

twitter - 什么会导致 Twitter 卡片验证器给出重定向循环错误?

javascript - 如何使用 Jest 和 React 测试函数

javascript - 如何在两个以上的 React 应用程序之间共享数据?

javascript - 尝试使用过滤器设置具有唯一值的数组失败

javascript - React重新渲染导致闪烁: How can i fix this?

如果网页上没有提供图像,Twitter 会显示占位符图像