我刚刚使用 reactjs 编写了我的第一个网站,但是当我检查谷歌如何查看我的网站时,我收到以下结果:
我的 HTML 文件如下所示:
<!DOCTYPE html>
<html>
<head>
<title>MySite</title>
</head>
<body>
<div id="root"></div>
<script async type="text/javascript" src="index.browser.js"></script>
</body>
</html>
我已停用所有用于测试的 AJAX 调用,ReactDOM.render 在其 js 文件加载后立即执行。 JS 文件本身经过编译、压缩,不到 300 KB(包括所有库,如 React 本身)。
在这一点上,我不明白我可以做哪些改变来让谷歌正确呈现我的页面?据我所知,reactjs 的谷歌渲染问题通常源于 AJAX 调用或在网站本身渲染和 DOM 更改之前在应用程序代码中完成的其他长期工作。但是在删除大型库(除了 i18next 和 React 本身)、最小化和压缩代码之后,我看不出我可以做些什么来显着提高性能或渲染时间。 PageSpeed Insights 是 99/100 点(桌面,只是提示我可以最小化 html 以节省 110 字节)。
有什么想法可能是我的错误所在吗?服务器端渲染对我来说并不是一个合适的选择。
您可以在此处查看演示页面:http://comparo.com.mx
如您所见,内容不多 - 但显示的 HTML 内容在加载 index.browser.js 后立即呈现,这是一个 < 300KB 的文件,因此应该不会阻止谷歌搜索控制台正确呈现页面。
编辑:我的服务器位于欧洲,据我所知,谷歌服务器从美国抓取。这会是一个问题吗?
最佳答案
将 babel polyfill 添加到你的项目中:
npm install --save babel-polyfill
然后将其导入您的 index.js(入口点):
import 'babel-polyfill';
希望这能解决您的问题。
关于javascript - reactjs - 获取作为谷歌仅显示空白页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48902026/