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

时间:2018-11-29 09:18:43

标签: vue.js routing contentful nuxt

我刚刚完成了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}`),
      ]
    })
}

当我在localhost上并且所有产品路由都已生成并更新正常时,它运行良好,当我运行npm run generate时,仅创建了一些“ kebaProduct”路由。不知道我在想什么

请注意,尽管我确实生成了5个“内容令人满意的kebaProducts”,但当我生成时,它仅生成一个.html文件,不确定预期的行为是什么。

1 个答案:

答案 0 :(得分:1)

弄清楚了。如果指定了某些内容,但内容代码中没有这些内容,则该页面将无法生成,因为它将引发错误。您可以使用v-if进行内容检查并有条件地呈现该内容,或者确保在Contentful验证中“必填”所有字段