gpt4 book ai didi

javascript - 如何获取 Twitter :image meta tag? 站点的基本 URL

转载 作者:行者123 更新时间:2023-12-02 19:31:41 24 4
gpt4 key购买 nike

我在 Markdown 文件中有以下前言。

---
title: "Hello world!"
excerpt: "Lorem ipsum dolor sit amet"
coverImage: "/assets/blog/hello-world/cover.png"
date: "2020-03-16T05:35:07.322Z"
author:
name: Mario
picture: "/assets/blog/authors/mario.png"
ogImage:
url: "/assets/blog/hello-world/cover.png"
---

我需要将图像的完整 url 传递给 twitter card meta twitter: image 和 open graph meta property = "og: image"

为此,我需要获取站点的基本 url,以将其用作我通过 front matter 获取的图像路径的前缀

<Head>
{/* Twitter */}
...
<meta name="twitter:image" content={data.ogImage.url} />

{/* Open Graph */}
...
<meta property="og:url" content={``} key="ogurl" />
<meta property="og:image" content={data.ogImage.url} key="ogimage" />
</Head>

现在 data.ogImage.url 的值为 /assets/blog/hello-world/cover.png 但为了工作,我需要为这个输出加上前缀带有站点基本 url

如何在 nextjs 中获取站点的基本 url?

最佳答案

有几种方法可以实现这样的事情:

  1. env 文件中创建您的基本 URL,并通过 process.env 引用它 ( This 可能会有所帮助用这种方法)

    .env 文件:

    // .env

    REACT_APP_BASE_URL=http://example.com/

    索引文件:

    <!-- index -->

    <meta property="og:image" content={`${process.env.BASE_URL}${data.ogImage.url}`} key="ogimage" />
  2. 使用相对路径,在这种方法中,您应该使用像这样工作的图像相对路径(this 可能会有所帮助):

    假设我们有以下结构:

    --src
    |--assets
    |--images
    |--image.png
    --index

    如果我们在索引文件中,我们将像这样引用该图像:

    <meta property="og:image" content={`./src/${data.ogImage.url}`} key="ogimage" />
    |__let's say this will return assets/images/image.png
  3. 使用 javascript 内置方法,例如 window.location。要访问基本 URL,我们可以从中获取 origin 属性,如下所示:window.location.origin (在 next.js< 中使用此方法 this 可能有帮助)

    <meta property="og:image" content={`${window.location.origin}${data.ogImage.url}`} key="ogimage" />

注意:正如@AlexeiLevenkov 在评论中提到的,因为您要求图像的完整路径,所以最好的方法是坚持使用第一种方法。

关于javascript - 如何获取 Twitter :image meta tag? 站点的基本 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61707204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com