Почему Nuxt автоматически не генерирует мои статические маршруты?

#vue.js #nuxt.js

#vue.js #nuxt.js

Вопрос:

Все, что я вижу в /dist папке при выполнении npm run generate , — это один 200.html и _nuxt папка с кучей других файлов: нет index.html и нет /about папки для моего about маршрута.

Так Nuxt что мои статические маршруты не генерируются, и приложение не работает.

Чего мне здесь не хватает?

router.js :

 import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)

export function createRouter () {
  return new Router({
    mode: 'history',
    routes: [
      {
        path: '/',
        component: () => import(/* webpackChunkName: "index" */ '~/pages/index.vue').then(m => m.default || m)
      },
      {
        path: '/about',
        component: () => import(/* webpackChunkName: "about" */ '~/pages/about.vue').then(m => m.default || m)
      }
    ]
  })
}
 

nuxt.config.js :

 export default {
  target: 'static',
  ssr: true,
  components: true,
  ...
}
 

РЕДАКТИРОВАТЬ: если я удаляю router.js , следовательно, разрешаю Nuxt.js выполнять автоматическую маршрутизацию, тогда мои статические маршруты генерируются, я только что обнаружил. Почему он терпит неудачу при наличии router.js ?

Комментарии:

1. Какова ваша версия nuxt? Это должно быть сделано автоматически благодаря сканеру. nuxtjs.org/blog/going-full-static/#crawler-integrated

2. Да, именно это должно быть сделано автоматически. Моя версия Nuxt: 2.15.2 .

3. Я думаю, что статические файлы и папки не работают с ssr = true, попробуйте использовать ssr = false .

4. @4ern спасибо, результат тот же.

5. @4ern это совершенно не связано. Кстати, искатель был нацелен на статическую генерацию, поэтому он должен быть на 100% с SSR, установленным в true.

Ответ №1:

Как объясняется в документах здесь: https://nuxtjs.org/docs/2.x/features/file-system-routing#extending-the-router

Если вы передадите router.js файл в свой Nuxt, он перезапишет вашу конфигурацию из-за @nuxtjs/router модуля. Вам нужно выбрать между 2.

Я бы все же рекомендовал использовать способ Nuxt и обрабатывать его с вашими файлами / папками, и пусть сканер выполняет свою работу.

В противном случае вы могли бы использовать keepDefaultRouter опцию модуля маршрутизатора.

Для моего использования router-extras-module достаточно хорош с точки зрения функций: если вы хотите создать несколько псевдонимов или переименований. Я действительно рекомендую это!