Xuxicheta
@Xuxicheta
инженер

Как в Nuxt сгенерировать страницы по результатам ответа api?

Есть структура папок
pages
|  index.vue
| posts
|  |  index.vue
|  |  _post.vue

в posts/index.vue я получаю с сервера массив со список постов, рендерю "оглавление", по клику запрашивается пост, рендерится и отображается.
После nuxt generate в папке posts получаю один index.html
В итоге работает только запрос к /posts, запрос к /posts/postname разумеется приводит к 404. Можно сделать перенаправление на индекс, но это уже не SSR.
Можно ли nuxt указать рендерить страницы по полученному списку?
  • Вопрос задан
  • 802 просмотра
Решения вопроса 1
Xuxicheta
@Xuxicheta Автор вопроса
инженер
Сам же и отвечу в nuxt.config.js
generate: {
    routes: async function () {
      /* получить список постов, у которых есть свойство postname */
      const { data: posts }  = await axios.get('https://mydomain/posts'); 
      /* вернуть массив адресов вида '/posts/%postname%' */
      return posts.map(u => `/posts/${u.postname}`);
    }
  },
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы