Project Icon

nextjs-github-pages

部署Next.js应用到GitHub Pages的自动化流程

此项目提供了将Next.js应用部署到GitHub Pages的详细流程。内容包括Next.js配置、GitHub仓库设置和自动化部署实现。通过GitHub Actions实现持续集成和部署,无需SSH密钥或个人访问令牌。指南还涵盖静态导出和基本路径设置等关键问题,确保应用在GitHub Pages上的正常运行。

Next.js GitHub Pages

使用GitHub Actions将Next.js部署到GitHub Pages。查看已部署的应用 🚀

现在支持Next.js App Router了!如果你需要Pages Router支持,请点击这里

⚠️ 注意!GitHub Pages 支持无服务器或边缘函数。这意味着动态功能将被禁用。查看所有不支持的功能


配置Next.js

Next.js配置

首先,你需要配置Next.js以部署静态导出。这是GitHub Pages工作所必需的。

  1. 打开next.config.mjs文件
  2. 添加以下内容:
/** @type {import('next').NextConfig} */
const nextConfig = {
  /**
   * 为App Router启用静态导出。
   *
   * @see https://nextjs.org/docs/app/building-your-application/deploying/static-exports
   */
  output: "export",

  /**
   * 设置基本路径。这是你GitHub仓库的slug。
   *
   * @see https://nextjs.org/docs/app/api-reference/next-config-js/basePath
   */
  basePath: "/nextjs-github-pages",

  /**
   * 禁用基于服务器的图像优化。Next.js不支持
   * 静态导出的动态功能。
   *
   * @see https://nextjs.org/docs/app/api-reference/components/image#unoptimized
   */
  images: {
    unoptimized: true,
  },
};

export default nextConfig;
  1. 保存next.config.mjs

  2. 最后,在/public目录中放置一个.nojekyll文件,以禁止GitHub Pages尝试创建Jekyll网站。

.
├── app/
├── public/
│   └── .nojekyll
├── next.config.js

完美!这就是你需要配置Next.js以在GitHub Pages上部署的全部内容。

page.tsx中添加基本路径

接下来,你需要在page.tsx文件中的图像添加基本路径。这是图像在GitHub Pages上显示所必需的。

  1. 打开app/page.tsx
  2. 找到Image组件
  3. src属性中添加/nextjs-github-pages/(或你GitHub仓库的slug):
   <Image
     src="/nextjs-github-pages/vercel.svg"
     alt="Vercel Logo"
     className={styles.vercelLogo}
     width={100}
     height={24}
     priority
   />
  1. 保存page.tsx文件

通过阅读官方文档了解更多关于basePath和图像的信息。


配置GitHub仓库

接下来,你需要配置GitHub以通过GitHub Actions进行自动部署。

启用GitHub Pages

以下设置使用Github Action Deploy Pages进行部署。我更喜欢这个工作流程,因为你不需要生成SSH密钥或使用个人访问令牌。

  1. 转到你仓库的Settings标签
  2. 点击侧边栏中的"Pages"
  3. 在"Build and Deployment"下,选择"GitHub Actions"作为源:

github pages设置的截图

设置GitHub Action

这就是魔法发生的地方!这个工作流文件会在你推送到main分支时自动构建和部署应用。

  1. 创建.github/workflows/deploy.yml文件
  2. 粘贴https://github.com/gregrickaby/nextjs-github-pages/blob/main/.github/workflows/deploy.yml的内容
  3. 保存deploy.yml文件

推送到GitHub

现在一切都配置好了,你可以提交你的代码并推送到GitHub。这将触发GitHub Action工作流程并将你的应用部署到GitHub Pages。

git add . && git commit -m "Initial commit" && git push

你应该在几分钟内看到你的网站部署到GitHub Pages。🚀


总结

感谢阅读,希望这对你有所帮助。如果你发现任何错误,请提交一个issue。祝你好运!🍻


项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号