Nuxt.js 和内容丰富的网站无法正确生成动态路由

Posted

技术标签:

【中文标题】Nuxt.js 和内容丰富的网站无法正确生成动态路由【英文标题】:Nuxt.js & contentful website not generating dynamic routes properly 【发布时间】:2019-05-01 07:23:32 【问题描述】:

我刚刚建立了一个 nuxt.js 和内容丰富的网站。当人们访问网站时,需要生成几条路线,但除非我刷新,否则它似乎不会生成所有路线或无法识别某些页面。示例 - 我将博客文章上传到内容,但它没有出现在博客文章列表中,但是当我更改显示没有问题的博客的文本时,我在下面附加了我的配置生成

generate: 
routes () 
  return Promise.all([
    client.getEntries(
      'content_type': 'product'
    ),
    client.getEntries(
      'content_type': 'kebaProduct'
    ),
    client.getEntries(
      'content_type': 'blogPost'
    ),
  ])
    .then(([productEntries, kebaEntries, blogEntries]) => 
      return [
        ...blogEntries.items.map(entry => `/blog/$entry.fields.slug`),
        ...productEntries.items.map(entry => `/products/$entry.fields.slug`),
        ...kebaEntries.items.map(entry => `/products/ev-charging/$entry.fields.slug`),
      ]
    )

当我在本地主机上并且所有产品路由都在生成和更新正常时,它工作正常,当我运行npm run generate 时,只创建了一些“kebaProduct”路由。不知道我错过了什么

请注意,虽然我有 5 个 'kebaProducts on contentful' 生成,但它只生成一个 .html 文件,不确定预期的行为是什么。

【问题讨论】:

【参考方案1】:

想通了。如果已指定某些内容并且它不存在于内容代码中,则该页面将无法生成,因为它会引发错误。您可以使用 v-if 检查内容并有条件地以这种方式呈现它,或者确保在内容验证中所有字段都是“必需的”

【讨论】:

以上是关于Nuxt.js 和内容丰富的网站无法正确生成动态路由的主要内容,如果未能解决你的问题,请参考以下文章

Nuxt.js:无法生成路由

快来用 Nuxt 开发静态网站

Nuxt.js 中的无限动态级别嵌套

如何在 nuxt.js 中创建动态锚链接?

vue-router-auto动态生成路由插件

Nuxt.JS “预期参数 accessToken” 内容丰富