我已克隆应用https://github.com/alanbsmith/react-node-example并尝试使用react-helmet。通过检查浏览器,我可以看到元标记值存在,但是当我在Facebook上发布URL并尝试在此处查看元标记状态时,https://developers.facebook.com/tools/debug/sharing/它说应该传递属性。 请任何人都可以建议这里出了什么问题。
请查找我的组件代码,
import '../assets/stylesheets/base.scss';
import React, { Component } from 'react';
import Helmet from "react-helmet";
class App extends Component {
render() {
return(
<div className="application">
<Helmet
htmlAttributes={{"lang": "en", "amp": undefined}} // amp takes no value
title="My Title"
titleTemplate="React Helmet - %s"
defaultTitle="React Helmet Title"
base={{"target": "_blank", "href": "http://myappname.herokuapp.com/"}}
meta={[
{"name": "description", "content": "Helmet application"},
{"property": "fb:app_id", "content": "myfbid"},
{"property": "og:title", "content": "My application title goes here."},
{"property": "og:type", "content": "website"},
{"property": "og:url", "content": "http://myappname.com/"},
{"property": "og:image", "content": "https://imagename.png"},
{"property": "og:description", "content": "Application description"},
{"property": "og:site_name", "content": "MyAppname.com"},
]}
/>
<h1>Welcome to the React helmet App, {this.props.name}!</h1>
</div>
)
}
};
export default App;
答案 0 :(得分:1)
那是因为Facebook的页面剪贴板没有执行javascript(不像Google的页面剪贴器,我相信)。这意味着您需要在服务器端预处理和添加元标记。
在Chrome中,您可以使用view-source
view-source:http://example.com