快了快了(新建文件夹中。。。)
- Vercel Postgres: 存储博客几乎所有的内容
- Vercel Blob: 存储友链的网站封面图片
- Vercel Edge Config: 存储一些配置文件,如:封禁、歌单信息、Live2D直链等
以下是不适合公开的环境变量
# https://ipinfo.io/
TOKEN_IPINFO=7f4c6f9e0a32d8c
# netease cloud music
API_NETEASECLOUDMUSIC=https://netease-cloud-music-api-flysky.vercel.app
# https://cloud.browserless.io/
TOKEN_BROWSERLESS=3d0f06ec-ff26-4b05-8937-80fb1269f60d
# edge config edit
EDGE_ID=ecfg_7bhjqwklveuyz9ix4n2tr3mfa5gd8sp
## https://vercel.com/account/tokens
TOKEN_VERCEL=Z6Wn8v7YkAf5Ml0DxJzI1gBp
# cloudflare r2
## https://dash.cloudflare.com/e52dc36cf56603a6090e044725996f99/r2/overview
NEXT_PUBLIC_R2_SECRET=8j1a9s2d0f5g4h7j6k8l3m4n5b0v
NEXT_PUBLIC_R2_URL=https://r2-worker.flysky12138.workers.dev
# 登录
## https://github.com/settings/developers
## Authorization callback URL example: https://blog.flysky.xyz/api/auth/callback/github
GITHUB_ID=p2j1w7l0i4e9t5k8u3y6c
GITHUB_SECRET=5c8e2b4f7a3d9b1e6c0g2a5h9j1k4l6m7n0o
## 库用来加密令牌和电子邮件验证哈希的随机字符串
## 访问 https://generate-secret.vercel.app/32 可获取一个随机值
NEXTAUTH_SECRET=8j1a9s2d0f5g4h7j6k8l3m4n5b0v
## 使用自己的 CDN 一定要在 vercel 控制面板里添加 CDN 域名。未知原因,添加在 .env 里无效
AUTH_URL=
# CDN
CDN_URL=
- 优先使用
tailwindcss
,只有在使用mui
&joy
组建时需要修改内部指定类或 CSS 变量时才使用sx
调整样式 - 为了减少客户端包的大小并充分利用服务器,请尽可能将状态
'use client'
移动到组件树的较低位置 参考 ↗ /src/app/**/_components
是对应路由用的非通用组建。为了和文件路由区分,文件夹名用大驼峰- 组件根标签是
div
等无意义标签,换成section
;React.Fragment
除外 - 接口类型导出
export type POST = MethodRequestType<{}>
- 对数据库的 CRUD 方法提取到外层,并命名为
db<Get|Post...>
,以便使用Prisma.PromiseReturnType<typeof dbGet>
获取返回类型 - 类型命名以
Type
结尾,接口不以Type
结尾
- 若遇到无论如何都不能刷新缓存,看下 vercel 的构建日志吧,api 可能被识别为
ISR Function
了,api 文件中添加export const dynamic = 'force-dynamic'
解决 参考 ↗