reactjs - 如何仅向搜索机器人提供 SSR 版本的 SPA (React)
问题描述
我们正在完成 React 网站,但出于 SEO 目的,我们需要识别用户代理并为搜索引擎爬虫“交付”网站的静态版本 (SSR),以及向其他用户代理的正常 SPA。我发现使用 next.js 我们可以制作 SSR,但在这种情况下,似乎网站将成为所有用户代理的 SSR。
所以问题是如何识别用户代理并根据用户代理类型交付网站版本(SPA/CSR 或 SSR)。
我知道如果在 React 服务器前面设置 Nginx 来路由(有点代理)请求,有一种方法。但我对 React only 解决方案感兴趣
解决方案
我认为您在谈论robots.txt文件。您可以将此文件添加到静态文件夹中并在server.js中定义
const options = {
root: path.join(__dirname + '/../static/'),
headers: {
'Content-Type': 'text/plain;charset=UTF-8',
}
};
server.get('/robots.txt', (req, res) => (
res.status(200).sendFile('robots.txt', options)
));
推荐阅读
- windows - 修改现有的 cmd 命令
- javascript - Cypress Cucumber ^ ParseError: Unexpected token
- php - 在 laravel 中一次发布所有计划任务
- c# - EF Core 无法添加实体类型“ClientType”的种子实体,因为属性“Id”需要非零值
- python - 将加载的 Keras 分类器与自定义指标函数一起使用时出错
- graph-databases - 有没有办法优化这个 Gremlin 查询?
- linux - 部署失败-指定位置的脚本:以用户 ec2-user 身份运行的 start.sh 失败,退出代码为 127
- javascript - 在vue多选中更改值时如何调用api
- javascript - 如何修复对象作为 React 子对象承诺无效
- ios - 在 Flutter 项目中在 iOS 上使用 facebook 错误登录