react-snap有时只抓取一个页面

时间:2019-03-02 17:41:30

标签: reactjs react-snap

在CRA应用程序上部署react-snap几乎没有什么困难,大大提高了页面加载速度,并且需要零专业配置。

但是,我看到偶尔出现的部署问题(本地部署和netlify部署)都只能抓取一个页面,然后看起来就完成了。像这样:

react-snap crawling only a single page

正常结果(可能是50%的时间)表示抓取了约50页,然后其他所有操作均成功完成。

我尝试将并发限制为1而没有改善。我可以使用哪些其他工具来解决此问题,或者可以包括一些配置选项来解决此问题?

1 个答案:

答案 0 :(得分:0)

弄清楚了:Webpack正在将PUBLIC_URL设置到生产域,并且新部署正在该域上寻找看起来像main.1234abcd.js的JS文件,并使用js文件的哈希值进行缓存破坏。在部署生产域之前,它在生产域中并不存在,因此加载页面失败,并且未检测到任何链接。

将JS链接设置为相对于根目录的URL(即/static/js/main.1234abcd.js)已从快照创建的服务器正确加载了JS,并允许对其进行正确爬网。

此外,在以下位置的react-snap中通过锚点爬网部分进行调试非常有用:https://github.com/stereobooster/react-snap/blob/master/src/puppeteer_utils.js#L108-L119