Nuxt.js:无法生成路由

dra*_*035 7 routes vue.js nuxt.js

我想为我的项目生成静态路由 ( /contact, /about, ...) 和动态路由 ( /project/1, /project/2,...),这样当用户在访问任何这些路由时刷新页面时,页面仍然有效。

但是当npm run generate我这样做时,我只Generated route "/"/dist文件夹中看到没有生成路由。

使用的 Nuxt.js 版本: 2.14.7

我尝试了两种模式universalspa模式,但两者都不适用。

在 nuxt.config.js 我在顶部:

const axios = require('axios')

const dynamicRoutes = async () => {
  const routes = await axios.get('http://my-project.com/wp/wp-json/projects/v1/posts')
    .then(res => res.data.map((project) => `/project/${project.ID}/${project.post_name}`))
    .then(res => res.concat(
      [
        '/about',
        '/contact',
        '/portfolio'
      ]
    ))
  return routes
}
Run Code Online (Sandbox Code Playgroud)

然后在export default {}

generate: {
  routes: dynamicRoutes
},
Run Code Online (Sandbox Code Playgroud)

ton*_*y19 1

router.mode='hash'似乎与配置不兼容generate.routes。当router.mode设置为 时hash,Nuxt 生成器会忽略generate.routes并仅为 创建单个路由/,大概是因为只有登陆页面预计以hash模式存在(即index.html设置一个路由器,该路由器处理应用程序的所有路由)。

该哈希模式也与中设置的模式router.js冲突,但如果您确实需要哈希路由,则应该选择仅将其设置router.js为允许generate.routes处理。

另请注意mode='universal'相当于ssr=true,因此该ssr=false配置与该模式一起没有意义。如果生成静态站点,您需要ssr=true调用任何asyncData()fetch()挂钩来填充静态页面数据。/about此设置还消除了附加、/contact/portfolioindynamicRoutes()的需要,因为它们已经包含在生成的路由中。

GitHub 公关