gatsby-starter-blog 的站点地图

sitemap for gatsby-starter-blog

目前我在为 gatsby-starter-blog. http://localhost:8000/sitemap.xml 生成 sitemap.xml 时遇到问题,但仍未找到。

我已经在做什么了:

siteMetadata: 
{
    siteUrl: 'http://www.localhost:8000',
  },
plugins: [ 
  {
    resolve: 'gatsby-plugin-sitemap',          
  },
]
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()
}

onPostBuild 只在构建过程中被调用,而不是开发,看起来你还没有 运行。尝试 运行ning gatsby build 然后你的 onPostBuild 实现将是 运行.