将动态元标记添加到使用StaticSiteGeneratorPlugin创建的React静态站点

时间:2017-12-08 20:10:21

标签: javascript reactjs webpack

我们正在使用StaticSiteGeneratorPlugin建立网站,是一个网站插件,可以在本地呈现网站,然后我们可以将其上传到S3。

我们的代码看起来基本上像this github project

我们正在使用React Helmet来管理我们的头部,元信息以及所有这些,并且在浏览器中运行良好,但在运行prod版本时却没有。

在entry.js中我有以下内容。缺少一种将Helmet生成的字符串添加到生成的html中的方法,或者如果有一个比头盔更好的管理器,那么我们将使用的插件更好。

export default function render(locals, callback) {
    const element = React.createElement(Root, props);
    const helmet = Helmet.renderStatic();
    const html = ReactDOMServer.renderToString(element);
    callback(null, `<!DOCTYPE html>${html}`);
}

1 个答案:

答案 0 :(得分:1)

试试这个,但是“不要写关于html的博客”:

const helmet = Helmet.renderStatic();
var html = ReactDOMServer.renderToString(element);
html.replace("</head>", helmet+"</head>");
callback(null, `<!DOCTYPE html>${html}`);