惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
N
Netflix TechBlog - Medium
aimingoo的专栏
aimingoo的专栏
P
Proofpoint News Feed
F
Fortinet All Blogs
大猫的无限游戏
大猫的无限游戏
I
InfoQ
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
有赞技术团队
有赞技术团队
G
Google Developers Blog
L
LangChain Blog
博客园_首页
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
月光博客
月光博客
IT之家
IT之家
量子位
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网

碎言

不懂就别瞎掰掰:【程序员的常识】写的什么玩意? PrimaryOralMathPack 小学生口算题生成器 AI 辅助编程下的程序设计与代码编写 使用 Next.js 和 Tailwind CSS 构建可编辑和删除的 ToDo 待办事项应用 探索编程新境界:MarsCode 助你一臂之力 使用 Next.js 和 Tailwind CSS 搭建静态图片展示站点并部署到 Vercel AI 辅助编程:免费工具的优缺点及官网一览 GitHub push更新总是失败,写个python脚本解决 把博客从GitHub迁移到到了vercel ComfyUI 和 Flux.1 安装与使用教程 Flux.1 入门必知:硬件、环境、模型 Git项目的子文件夹中的内容无法同步到远程仓库的解决方法 blender流体Fluid使用中没有流体、流体穿模等一些问题的解决方法 博客聚合网站:积薪,竟然关闭了! blender日常使用中的一些技巧 虽然只有我自己在用,但还是更新了碎言博客的源代码, 与其在迷茫中困惑,不如在努力中前进 差点忘了我还有一个博客... 秧歌、博客和AI 终于熬到了新手上路 好久没有更新博客了。。。 老妈大腿骨骨折,最近一直在医院护理 Hello, September! Ubuntu开机自动启动Docker容器运行WordPress Docker 简单快速安装部署WordPress Docker下安装MySQL 加碘盐能防核辐射的话,还怕什么核战争? shields.io 一个简洁、一致、清晰的徽章 Ubuntu下使用root登录ssh的设置 GitHub Actions 构建、部署 Next.js项目
Next项目部署GitHub pages的一些坑
J.sky · 2023-08-20 · via 碎言

next项目部署GitHub pages有两个小坑,今天就来说到说到。

坑一 静态资源地址

当你build打包了静态资源之后,你会push到你的GitHub仓库中,这个时候你会发现只有index.html可以打开,其他的静态资源统统404找不到地址,查看代码发现静态资源的地址都是错误的,例如你线上的正确地址是:<script defer="" nomodule="" src="/favorites/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script>,因为你的仓库名称:favorites,所以只有添加了/favorites的前缀才会打开,但是实际上传之后地址是:/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,少了/favorites,就会造成资源的404状态。

解决办法:

在next的配置文件中添加:

# next.config.js
basePath: '/favorites',

给你的静态资源添加一个前缀就好了,然后重新编译打包,再次push到仓库,结果你会发现你的地址已经完全正确了!甚至通过浏览器的工具查看了请求地址,绝对是没有问题的,但是…

坑二 _惹的祸

通过浏览器的工具查看了静态资源的请求地址,绝对是没有问题的,但是依然是404,你仰天长啸:卧槽,这是见鬼了么?

这世界没有鬼,如果看似正确的事情却出现了不正常的现象,那么就一定是有人在捣鬼!没错,是GitHub搞得鬼!GitHub的静态页面服务竟然不支持_这个符号,也就是说/_next/static/chunks/XXXX这个地址是无法识别的,所以才会出现404这个鬼!那么结局的办法是:

在你的 Next.js 项目中,你可以通过在构建脚本中添加一些自定义操作来实现在输出目录(例如 out 目录)中自动生成一个 .nojekyll 文件。这样做可以确保在部署到 GitHub Pages 时,静态资源能够正确地被访问,而不会受到 Jekyll 处理的影响。

你可以建一个脚本,每次打包的时候都自动生成一个.nojekyll的空文件在out目录中,这样就解决了!再次push GitHub仓库,一切正常了

总结

真是见鬼了!