Как сделать динамическую подгрузку страниц в Nuxt 3 + SSR?
У меня есть приложение на Nuxt 3 и такая структура:
/<project-root>
├── /pages
| ├── index.vue
| ├── about.vue
| └── [...dynamic].vue
└── /static-pages
└── /page-1
├── manifest.json
├── index.js
└── style.css
Мне нужно подгружать данные в зависимости от роута.
Т. е. при роуте https://my-site.com/page-1
Мне нужно, чтобы роутер, не найдя страницу page-1 в приложении (папке pages), сделал запрос в static-pages, вытянул оттуда page-1/manifest.json и подгрузил всё, что указано в манифесте и вставил на страницу в теги script и style с нужными src.
Манифест имеет такую структуру:
{
"js": ["index.js"],
"style": ["style.css"]
}
И ещё важно, чтобы это работало с SSR.
Суть в том, что есть как бы core приложение со своим функционалом и есть ленды, которые используют компоненты из core. Так вот, лендов много и они часто меняются, а вот core меняется редко, да и деплоить, билдить, гонять тесты напряжно по нескольку раз в день.
Библиотека vue-loader умеет собирать из .vue файлов компоненты не таща сам Vue. Эти компоненты и будут лежать в папках /static-pages
Я много пробовал, но всё это работает как-то криво. Nuxt, при попытке грузить из /static-pages пытается найти этот роут в pages, а не найдя там, попадает в компонент dynamic, и в dynamic оно опять пытается загрузить /static-pages и так по кругу.
Вопрос в том, как написать компонент dynamic, чтобы он работал как нужно?
Я подозреваю, что тут пригодится папка server, но пока не очень понимаю, как это всё организовать.
Спасибо!