2

I've just finished building a nuxt.js & contentful website. There are several routes that need to be generated when people hit the website but it doesn't seem to generate all the routes or not recognise some pages unless I refresh. Example - I upload a blog post to contentful and it doesn't appear in the list of blog posts but when I change the text of a blog that is appearing with no issue, I have attached my config generate below

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}`),
      ]
    })
}

It works fine when I am on localhost and all the product routes are being generated and updated fine, only some of the 'kebaProduct' routes are being created when I run npm run generate. Not sure what I am missing

Note when I do generate although I have 5 'kebaProducts on contentful' it only generates one .html file not sure what the expected behaviour is.

Eik Hunter
  • 87
  • 2
  • 10

1 Answers1

1

Figured it out. If some content has been specified and it isn't present in the contentful code then the page will fail to be generated as it will throw an error. You can do checks with v-if for content and conditionally render it that way or make sure all fields are 'required' in the Contentful validations

Eik Hunter
  • 87
  • 2
  • 10