Гэтсби использует веб-пакет, и в какой-то момент поведение по умолчанию было разделить код CSS (т.е. загружать модули CSS только при необходимости).
Это вызывало нежелательное поведение для некоторых пользователей, поэтому Конфигурация webpack теперь настроена на создание только одного CSS файла.
Подробнее о проблеме здесь: https://github.com/gatsbyjs/gatsby/issues/11072 https://github.com/gatsbyjs/gatsby/commit/7058a256d2dcfab91259bdf00e811375737414e7
Я провел быстрый тест с gatsby-plugin-split- css, и он, кажется, дает вам желаемое поведение. Тем не менее, я буду осторожен, так как вы можете столкнуться с проблемами, указанными в приведенных выше ссылках.
Если вас беспокоит то, что большой блок стилей загружается на каждой странице, тогда я рекомендую вам открыть Network
и Elements
вкладок в вашем браузере DevTools. Вы заметите, что блок стилей загружается только один раз, и когда вы переходите между страницами, используя <Link>
от Gatsby, обновляется только контент, который нужно удалить / добавить.
Так что, если посетители вашего сайта приземляются сначала на index.html
и щелкнув от <Link/>
до page-2.html
, при нажатии они не изменятся по времени загрузки, поскольку тег <style>
сохраняется в <head>
при нажатии. Однако, если они, вероятно, будут go до page-2.html
напрямую с внешнего сайта, то, возможно, я мог бы понять необходимость разделения кода, если CSS на вашей странице index.html
действительно длинный.