vue.js - Nuxt.js:无法生成路由

标签 vue.js routes 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
}
然后在 export default {} :
generate: {
  routes: dynamicRoutes
},

最佳答案

router.mode='hash'似乎与 generate.routes 不兼容配置。当router.mode设置为 hash , Nuxt 发生器 ignores generate.routes and only creates a single route for / ,大概是因为 hash 中只存在着陆页。模式(即 index.html 设置一个路由器,它处理应用程序的所有路由)。
该哈希模式也与 the mode set in router.js 冲突。 ,但如果你真的需要哈希路由,你应该选择只在 router.js 中设置它。允许 generate.routes待处理。
另请注意mode='universal'相当于ssr=true ,所以 ssr=false config与该模式一起没有意义。如果生成静态站点,则需要 ssr=true这样任何 asyncData()fetch()调用钩子(Hook)来填充您的静态页面数据。此设置也无需附加 /about , /contact , and /portfolio in dynamicRoutes() ,因为它们已经包含在生成的 route 。
GitHub PR

关于vue.js - Nuxt.js:无法生成路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65077883/

相关文章:

java - 有没有办法使用 playframework 接受路由中的自定义对象?

ruby-on-rails - 设计 after_sign_in_path_for ... 发送到 .... root_path - 查询

javascript - Nuxt,将 Vuex 存储拆分为单独的文件会出现错误 : unknown mutation type: login

function - v-model vue 3中的参数函数

asp.net-mvc - 如何在 ASP.NET MVC View 中访问路由参数?

javascript - Nuxt.js 转换不起作用

vue.js - Nuxt中路由更改后如何不向下滚动页面?

vue.js - VueJs 选项卡组件的延迟初始化仅一次

javascript - 在 VueJS 中使用 POST 请求提交表单

javascript - @keydown 和@input 一起触发