我已经发布了一个 reactjs 网站,它依赖于 AJAX 请求(如果相关,则在 graphQL API 上发布请求)来显示数据。
使用谷歌控制台获取和渲染服务,我可以看到只有我不需要调用任何 API 的组件被渲染。根本不会呈现任何基于 AJAX 的组件。
Google fetch & render 确实向我展示了我网站的 2 张渲染图片(谷歌与访问者),但两者都缺少 AJAX 内容。
在这种情况下服务器渲染是强制性的吗?
我没有 robots.txt 文件。
我正在做类似的事情:
import React, { Component } from 'react';
import { observer } from 'mobx-react';
import { observable, runInAction } from 'mobx';
import axios from 'axios';
import ContributorList from '~/components/global/ContributorList';
import type { User } from '~/types';
import CSSModules from 'react-css-modules';
import styles from './style.less';
@observer
@CSSModules(styles)
export default class Footer extends Component {
@observable contributors: Array<User> = [];
async loadContributors () {
const { data: {
data: data
} } = await axios.post('/', {
query: `
{
users {
id,
name,
slug,
avatar {
secure_url
}
}
}
`
});
runInAction( () => {
this.contributors = data.users;
});
}
componentDidMount () {
this.loadContributors();
}
render () {
return (
<div styleName='contributors'>
{ 'Static content' }
<ContributorList
contributors={ this.contributors }
/>
</div>
);
}
};
在我的浏览器中,我可以看到一切正常(“静态内容”+ 很少异步获取的贡献者)。但是通过谷歌获取和渲染,我看到了 2 个仅显示“静态内容”的屏幕截图。
结果,我的动态内容没有出现在谷歌搜索结果中。