在CRA应用程序上部署react-snap
几乎没有什么困难,大大提高了页面加载速度,并且需要零专业配置。
但是,我看到偶尔出现的部署问题(本地部署和netlify部署)都只能抓取一个页面,然后看起来就完成了。像这样:
正常结果(可能是50%的时间)表示抓取了约50页,然后其他所有操作均成功完成。
我尝试将并发限制为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