You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js13+Contentlayer部署Vercel后,如何动态展示新增GitHub帖子?

问题描述

使用Contentlayer构建页面,通过Vercel展示存储在GitHub上的博客帖子。向GitHub提交新帖子后,站点未重新构建,无法看到新发布的内容。基于Next.js13开发的站点该如何解决?

用户的Contentlayer配置文件:

import { defineDocumentType, makeSource } from 'contentlayer/source-files'

export const Post = defineDocumentType(() => ({
  name: 'Post',
  filePathPattern: `**/*.md`,
  fields: {
    title: {
      type: 'string',
      description: 'The title of the post',
      required: true,
    },
    subtitle:{
      type:'string',
      description:'The subtitle of the post',
      required:true,
    },
    date: {
      type: 'date',
      description: 'The date of the post',
      required: true,
    },
    keywords:{
      type:'string',
      description:'Meta Etiketleri',
      required:true
    },
    description:{
      type:'string',
      description:'Meta Etiketleri',
      required:true
    }

  },
  computedFields: {
    url: {
      type: 'string',
      resolve: (post) => `Blog/Yazilar/${post._raw.flattenedPath}`,
    },
  },
}))

export default makeSource({
  contentDirPath: 'posts',
  documentTypes: [Post],
})
解决方案

Contentlayer是构建时生成静态内容的工具,新帖子提交后必须触发Vercel重新构建才能更新站点,具体解决步骤如下:

1. 开启Vercel与GitHub的自动构建触发

  • 进入Vercel对应项目的「Settings」→「Git」页面
  • 在「Deployment Branches」中,确认你的目标分支(比如main)已被设置为触发分支
  • 开启「Automatically deploy changes」选项,这样每次向该分支推送代码时,Vercel会自动触发构建

2. 检查package.json的构建脚本

确保build命令先执行Contentlayer的构建,再执行Next.js的构建,否则新帖子不会被Contentlayer解析:

"scripts": {
  "dev": "contentlayer dev && next dev",
  "build": "contentlayer build && next build",
  "start": "next start"
}

3. 临时手动触发构建

如果自动构建未生效,可直接在Vercel项目的「Deployments」页面点击「Deploy」按钮,选择对应分支手动触发一次构建,即可更新新帖子内容。


内容的提问来源于stack exchange,提问作者SOSYAL BİLİŞİM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 09:30:50