使用Create-React-App,如何根据URL自定义META标记?

时间:2018-03-20 00:35:32

标签: reactjs create-react-app

我目前正在为我的应用程序使用create-react-app。这在public / index.html文件中使用硬编码的元标记,如下所示:

<title>XXXX</title>
<meta name="description" content="XXXXX" />
<meta property="og:title" content="XXXXXXX">
<meta property="og:url" content="https://xxx">

问题是,meta标签是针对所有页面的硬编码的...如何动态覆盖应用程序中不同网址上的这些元标记。例如,对于像这样的用户个人资料页面:

myapp.com/profiles/usernameX

如何让该网址返回特定的元标记?

1 个答案:

答案 0 :(得分:0)

您正在寻找的库是react-helmet,是React的文档主管。 react-helmet可以管理文档头的任何更改。例如,您可以在meta中添加index.html标记,但只要React组件在其meta组件中使用不同的<Helmet>标记进行渲染(react-helmet管理head)meta中的index.html标记将被覆盖。这种重写也发生在不同的React组件之间,子组件优先。

The Stuyvesant Spectator的网站react-helmet的一个很好的例子是https://stuyspec.com(注意<title>如何根据您所在的页面/文章而变化上)。

如果您想要服务器端操作,可以使用Gatsby。 Gatsby是React的静态站点生成器,它有一个与它一起使用的react-helmet包(gatsby-plugin-react-helmet)。