#reactjs #react-snap
#reactjs #react-snap
Вопрос:
Развертывание react-snap
в приложении CRA было в основном безболезненным, что значительно повысило скорость загрузки страницы и не требовало специальной настройки.
Однако я наблюдаю случайные проблемы с развертываниями (как локальными, так и из netlify), которые выполняют обход только одной страницы, а затем отображаются выполненными. Вот так:
Обычный результат (возможно, в 50% случаев) означает обход ~ 50 страниц, а затем все остальное успешно завершается.
Я пытался ограничить параллелизм до 1 без улучшения. Какие еще инструменты я могу использовать для решения этой проблемы или параметры конфигурации, которые я могу включить, чтобы исправить это?
Комментарии:
1. Возможно ли, что это условие гонки? Есть ли у вас динамический импорт, который может привести к задержке рендеринга вашей страницы? Иначе говоря, ссылки не отображаются на первой странице?
Ответ №1:
Выяснил это: Webpack был настроен PUBLIC_URL
на рабочий домен, и новые развертывания искали в этом домене файл JS, который выглядел как main.1234abcd.js
, используя хэш файла js для очистки кэша. Этого не существовало в рабочем домене до его развертывания, поэтому загрузка страницы завершилась неудачно, и ссылки не были обнаружены.
Установка ссылок JS на URL, относящийся к корневому каталогу (т. Е. /static/js/main.1234abcd.js
), правильно загрузила JS с сервера, созданного snap, и позволила правильно выполнить обход.
Кроме того, было полезно выполнить отладку с помощью раздела обхода привязки в react-snap здесь: https://github.com/stereobooster/react-snap/blob/master/src/puppeteer_utils.js#L108-L119
Комментарии:
1. как бы вы установили ссылки JS на URL, относящийся к корневому каталогу?