Что эквивалентно getStaticPaths в Sapper?

В NextJS есть функция getStaticPaths, которая сообщает NextJS, какие маршруты фактически доступны при выполнении экспорта. Типичный пример - блог, сообщения которого доступны по адресу /post/[id]. Допустим, есть два сообщения с идентификаторами 1 и 2. В этом случае getStaticPaths определит и вернет эту информацию, чтобы NextJS знал, что он должен отображать сайт для /posts/1 и /posts/2 при выполнении next export.

Мне интересно, что эквивалентно этому в Sapper. Я знаю, что есть функция preload, однако, насколько я понимаю, ее следует использовать для получения фактических данных поста и не определять, какие динамические маршруты действительно существуют во время экспорта.


person jz22    schedule 13.07.2020    source источник


Ответы (1)


На самом деле в Sapper нет эквивалента, потому что он работает немного по-другому. Чтобы проект Sapper можно было экспортировать, все страницы должны быть доступны по ссылкам из точки входа. В настоящее время все точки входа должны быть индексными страницами, но есть Pr, открытый для поддержки файлов, которые обычно недоступны по ссылкам на сайте, например, карты сайта. Вы можете указать несколько точек входа. Однако с базовым шаблоном точкой входа является просто главная страница индекса. Все остальные страницы открываются по ссылкам с этой страницы.

Код можно найти здесь: https://github.com/sveltejs/sapper/blob/f3e9fc48d281ff990458a4a537a50d59db105e37/src/api/export.ts#L93.

person digby280    schedule 13.07.2020
comment
Спасибо за Ваш ответ. Просто чтобы убедиться, что я правильно понял, на данный момент он не будет извлекать и экспортировать все сообщения блога, поскольку они явно не связаны в индексном файле или где-то еще. - person jz22; 14.07.2020
comment
да. Это правильно. Он в основном сканирует ваш сайт, начиная с точек входа, и обнаруживает все страницы. Если страница не может быть достигнута прямо или косвенно из точки входа, она не будет экспортирована. PR, о котором я упоминал, находится здесь: github.com/sveltejs/sapper/pull/1288 . Если это будет объединено, вы сможете добавить другие страницы в качестве точек входа. - person digby280; 14.07.2020
comment
Это должно охватывать все, что я пропустил: sapper.svelte.dev/docs#Exporting - person digby280; 14.07.2020