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 添加网站元这是我的 gatsby-node.js 代码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()
【问题讨论】:
这里的文档gatsbyjs.org/docs/creating-a-sitemap 没有指定它仅用于生产/onPostBuild。我在github.com/gatsbyjs/gatsby/pull/10857 进行了文档更新的 PR。 【参考方案1】:onPostBuild
只在构建过程中被调用,而不是开发,看起来你还没有运行。尝试运行gatsby build
,然后您的onPostBuild
实现将运行。
【讨论】:
以上是关于gatsby-starter-blog 的站点地图的主要内容,如果未能解决你的问题,请参考以下文章