gatsby-starter-blog 的站点地图

Posted

技术标签:

【中文标题】gatsby-starter-blog 的站点地图【英文标题】:sitemap for gatsby-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()

【问题讨论】:

这里的文档gatsbyjs.org/docs/creating-a-sitemap 没有指定它仅用于生产/onPostBuild。我在github.com/gatsbyjs/gatsby/pull/10857 进行了文档更新的 PR。 【参考方案1】:

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

【讨论】:

以上是关于gatsby-starter-blog 的站点地图的主要内容,如果未能解决你的问题,请参考以下文章

指定站点地图语言(所有站点地图的语言相同)

利用ASP.NET里自带的站点地图工具制作网站站点地图

Google搜索控制台无法获取站点地图“无法读取站点地图”

php 将IDX站点地图添加到Yoast SEO站点地图

php 将IDX站点地图添加到Yoast SEO站点地图

如何使用反应路由器生成站点地图