<meta property="og:image" content="https://mywebsite.com/images/s1.jpg"
我使用了 next/head 并添加了上面的元标记图像,但是当我共享链接时,图像没有出现。 我该如何修复它?
对我来说它终于起作用了: _app.js 内部
import Head from "next/head"
然后在返回中:
<Head>
<meta property="og:image" content="https://myurl.com/ogImage.png" />
</Head>
然后我进行了静态导出并通过 FTP 从“out”文件夹上传文件,因为我将项目托管在非节点服务器上。为此,请打开“package.json”并将“导出”更改为“下一个构建&&下一个导出”。然后只需在控制台中运行 npm run export,文件就会导出为 html
正如下一个文档中所述:
注意:只有构建时位于公共目录中的资产才会由 Next.js 提供服务。在运行时添加的文件将不可用。我们建议使用 AWS S3 等第三方服务进行持久文件存储。
因此,Next 将
<meta>
标签视为动态内容,并且不进行任何构建时转换,这导致图像不被使用。
要解决这个问题,您可以将图像上传到某个图像托管(甚至您自己的网站),获取此链接并将其放入
og:image
,或者您可以添加自定义 webpack 加载器来处理图像导入,像这样:
import imageUrl from './logo.png';
import websiteUrl from './constants';
// somewhere in the head component
<meta property="og:image" content={`${websiteUrl}${imageUrl}`} />
这里,
websiteUrl
指向您的生产网站的主机名,例如https://example.com
。
最后一个也是一个关键的选项是添加
<img src="/logo.jpg" alt="" style={{ display: 'none'}} />
。这确保 Next 将在构建时处理您的图像,并且您可以将 <meta property="og:image" content={websiteUrl + '/logo.jpg'} />
添加到头部。好处是 浏览器最初不会加载显示设置为无的图像。
您可以在
<head>
标签中使用此元标签
<meta property="og:image" content="https://mywebsite.com/images/s1.jpg"/>
<meta property="og:title" content="Your Title"/>
<meta property="og:description" content="A full description of the page."/>
<meta property="og:image:width" content="1200"/>
<meta property="og:image:height" content="630"/>
请正确关闭标签中您错过的元标签。