在CRA应用程序上部署react-snap几乎没有痛苦,页面加载速度得到了极大提升,并且不需要专门的配置。
然而,我偶尔会看到部署(无论是本地的还是来自netlify的)仅爬行单个页面然后显示为已完成的问题。如下所示:

正常的结果(可能是50%的时间)意味着抓取大约50个页面,然后所有其他内容都成功完成。
我曾尝试将并发数限制为1,但没有任何改进。我可以使用哪些其他工具来解决这个问题,或者我可以包括哪些配置选项来解决这个问题?
发布于 2019-03-17 00:46:15
弄清楚了这一点: Webpack将PUBLIC_URL设置为生产域,新部署人员在该域中寻找看起来像main.1234abcd.js的JS文件,使用js文件的散列进行缓存破坏。在部署之前,它不存在于生产域中,因此加载页面失败,并且没有检测到任何链接。
将JS链接设置为根相对URL (即/static/js/main.1234abcd.js)可从snap创建的服务器正确加载JS,并允许对其进行正确爬网。
此外,通过react-snap中的锚点爬行部分进行调试也很有帮助:https://github.com/stereobooster/react-snap/blob/master/src/puppeteer_utils.js#L108-L119
https://stackoverflow.com/questions/54961242
复制相似问题