react-snap 有时只会抓取单个页面

react-snap sometimes only crawls a single page

在 CRA 应用程序上部署 react-snap 几乎没有任何痛苦,页面加载速度大幅提升,并且需要零专业配置。

但是,我偶尔会看到部署(本地和来自 netlify)仅抓取单个页面然后显示已完成的问题。像这样:

正常结果(可能是 50% 的时间)意味着抓取了约 50 个页面,然后其他一切都成功完成。

我试过将并发数限制为 1,但没有任何改进。我可以使用哪些其他工具来解决这个问题,或者我可以包含配置选项来解决这个问题?

弄清楚了: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