【问题标题】:sitemap for gatsby-starter-bloggatsby-starter-blog 的站点地图
【发布时间】:2018-02-22 01:18:50
【问题描述】:

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

我已经在做什么:

  • npm install gatsby-plugin-sitemap
  • 添加网站元
siteMetadata: 
{
    siteUrl: 'http://www.localhost:8000',
  },
plugins: [ 
  {
    resolve: 'gatsby-plugin-sitemap',          
  },
]
  • 这是我的 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()
}

【问题讨论】:

标签: sitemap gatsby


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-07-25
    • 1970-01-01
    • 2020-05-22
    • 2019-11-22
    • 2023-01-08
    • 2021-10-31
    • 2021-03-31
    • 2021-04-24
    • 1970-01-01
    相关资源
    最近更新 更多