1

在 CRA 应用程序上进行部署react-snap几乎是无痛的,极大地提高了页面加载速度,并且需要零专门配置。

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

react-snap 只抓取一个页面

正常结果(可能是 50% 的时间)意味着爬取了大约 50 个页面,然后其他所有内容都成功完成。

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

4

1 回答 1

1

想通了:Webpack 设置PUBLIC_URL为生产域,新部署正在该域上查找看起来像 的 JS 文件main.1234abcd.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

于 2019-03-16T16:46:14.777 回答