如何将 react-helmet 与 netlify prerender 一起使用?
How do I use react-helmet with netlify prerender?
我正在尝试使用 React + React 路由器 + React 头盔应用设置 netlify 预渲染。我试图在抓取页面时在标签中显示页面标题和一些开放图元标签。
这是调用 react-helmet 的代码:
<Helmet>
<title>{entry.title} — Road Trip en Islande</title>
<meta name="description" content="Nested component" />
<meta property="og:title" content={entry.title} />
<meta property="og:url"
content={`https://roadtrips.iwazaru.fr/entry/${entry.id}`} />
</Helmet>
无需预渲染即可在浏览器中运行:
https://roadtrips.iwazaru.fr/entry/S
它在使用 netlify prerender 进行本地预渲染时也有效,正确的标题和打开的图表标签显示在预渲染的 html 中。
但是当使用 facebook 调试器抓取页面时,尽管页面的其余部分已正确预呈现,但我放入 React 头盔的任何内容似乎都没有预呈现:
https://developers.facebook.com/tools/debug/echo/?q=https%3A%2F%2Froadtrips.iwazaru.fr%2Fentry%2FS
我是不是做错了什么?
解决了。问题显然是在 index.html
模板文件中有开放图形元标记,在 react-helmet 之前加载。我仍然无法解释为什么在本地使用 prerender 而不是在使用 netlify 的 prerender 时它们会被替换。
我正在尝试使用 React + React 路由器 + React 头盔应用设置 netlify 预渲染。我试图在抓取页面时在标签中显示页面标题和一些开放图元标签。
这是调用 react-helmet 的代码:
<Helmet>
<title>{entry.title} — Road Trip en Islande</title>
<meta name="description" content="Nested component" />
<meta property="og:title" content={entry.title} />
<meta property="og:url"
content={`https://roadtrips.iwazaru.fr/entry/${entry.id}`} />
</Helmet>
无需预渲染即可在浏览器中运行: https://roadtrips.iwazaru.fr/entry/S
它在使用 netlify prerender 进行本地预渲染时也有效,正确的标题和打开的图表标签显示在预渲染的 html 中。
但是当使用 facebook 调试器抓取页面时,尽管页面的其余部分已正确预呈现,但我放入 React 头盔的任何内容似乎都没有预呈现: https://developers.facebook.com/tools/debug/echo/?q=https%3A%2F%2Froadtrips.iwazaru.fr%2Fentry%2FS
我是不是做错了什么?
解决了。问题显然是在 index.html
模板文件中有开放图形元标记,在 react-helmet 之前加载。我仍然无法解释为什么在本地使用 prerender 而不是在使用 netlify 的 prerender 时它们会被替换。