2017-09-13 8 views
0

actuellement je suis un problème avec la génération de sitemap.xml pour gatsby-starter-blog. http://localhost:8000/sitemap.xml toujours introuvable.plan du site pour gatsby-starter-blog

ce que je fais déjà:

  • NPM installer Gatsby-plugin-plan du site
  • ajouter le site méta
siteMetadata: 
{ 
    siteUrl: 'http://www.localhost:8000', 
    }, 
plugins: [ 
    { 
    resolve: 'gatsby-plugin-sitemap',   
    }, 
] 
  • ici mon code pour Gatsby -node.js
const sm = require(`sitemap`) 


//const pages = edge.node.frontmatter.path 
function pagesToSitemap(pages) { 
    const urls = pages.map((p) => { 
    if (p.path !== undefined) { 
     return { 
     url: p.path, 
     changefreq: 'daily', 
     priority: 0.7 
     } 
    } 
    }) 
    // remove undefined (template pages) 
    return urls.filter(u => u !== undefined) 
} 

function generateSiteMap(pages) { 
    const sitemap = sm.createSitemap({ 
    hostname: 'http://localhost:8000', 
    cacheTime: '60000', 
    urls: pagesToSitemap(pages), 
    }) 
    fs.writeFileSync(
    `${__dirname}/public/sitemap.xml`, 
    sitemap.toString() 
) 
} 

exports.onPostBuild = ({pages, callback}) => { 
    generateSiteMap(pages) 
    callback() 
} 

Répondre

1

onPostBuild est seulement appelé au cours du processus de construction, ne pas développer, qu'il semble que vous ne l'avez pas encore exécuté. Essayez d'exécuter gatsby build et votre implémentation onPostBuild sera ensuite exécutée.