在 CRA 应用程序上进行部署react-snap
几乎是无痛的,极大地提高了页面加载速度,并且需要零专门配置。
但是,我偶尔会看到部署(本地和来自 netlify)仅爬取单个页面然后看起来已完成的问题。像这样:
正常结果(可能是 50% 的时间)意味着爬取了大约 50 个页面,然后其他所有内容都成功完成。
我尝试将并发限制为 1 而没有改进。我可以使用哪些其他工具来解决这个问题,或者我可以包含哪些配置选项来解决这个问题?
在 CRA 应用程序上进行部署react-snap
几乎是无痛的,极大地提高了页面加载速度,并且需要零专门配置。
但是,我偶尔会看到部署(本地和来自 netlify)仅爬取单个页面然后看起来已完成的问题。像这样:
正常结果(可能是 50% 的时间)意味着爬取了大约 50 个页面,然后其他所有内容都成功完成。
我尝试将并发限制为 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