我正在尝试将react-helmet与react-rails和webpacker一起使用,并启用服务器端渲染,以便在用户在不同路线上导航时能够处理meta标签的生成。我能够在服务器上生成页面并获取页面的内容,但是缺少用于生成它们的元标记react-helmet。尽管在客户端,react-helmet确实可以很好地完成工作,但是在服务器端,meta标签没有交付。为什么没有在应用程序的整个其他部分同时在服务器端执行react-helmet的任何原因?
// App.js
// if window defined else ...
<StaticRouter location={this.props.path} context={context}>
<Route path='/' render=>{ routerProps => <Landing {...routerProps}/>}/>
</StaticRouter>
// Landing
// render ...
<section>
<Helmet
title={'Title'}
meta={[
{"name": "robots", "content": "index, follow"},
{"property": "og:site_name", "content": ""},
{"property": "og:title", "content": ''},
{"property": "og:type", "content": "website"},
{"property": "og:url", "content": this.props.path },
{"property": "og:description", "content": '...'},
]}
/>
...
</section>
// views/main.slim
= react_component "App", {} , { prerender: true }
// app/javascript/packs/application.js
var componentRequireContext = require.context("my_app", true)
var ReactRailsUJS = require("react_ujs")
ReactRailsUJS.useContext(componentRequireContext)
任何帮助将不胜感激。谢谢。