fix(image): disable next/image optimization for TOS-hosted assets
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 5m10s

桶里资源已是 webp + 预压缩 + CDN, 不需要 Next 16 再做一次 image 优化:
- images.unoptimized=true: 直接走 <img src="https://..."/>, 浏览器走自己网络栈
- 顺带绕过 dev 时 fake-IP 代理 (Clash/V2Ray TUN 返回 198.18.0.x) 触发的
  "resolved to private ip" 拦截
- remotePatterns 保留 (Next 16 即便不优化仍校验域名白名单)

生产 CPU 占用也省了, 不需要在 origin 再编码 webp。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
iye 2026-05-13 14:43:52 +08:00
parent 8c88943a06
commit 15af8e1781

View File

@ -5,8 +5,13 @@ const nextConfig: NextConfig = {
devIndicators: false,
// 容器化部署:产出精简的 standalone 包node server.js 启动)
output: "standalone",
// next/image 远程域名白名单:火山 TOS 桶 + 后续 CDN 域名
// next/image 配置
// - unoptimized: 关闭服务端 image 优化代理。资源已在 TOS 桶里是 WebP + 适配尺寸,
// 走 CDN,无需 Next.js 再编码一次。还能绕过 dev 时 fake-IP 代理(Clash/V2Ray TUN
// 返回 198.18.x.x)被 Next 16 拒绝 fetch 的问题。
// - remotePatterns: 即便不优化,Next 16 仍会校验远程域名白名单,保留 TOS + CDN 域名。
images: {
unoptimized: true,
remotePatterns: [
{ protocol: "https", hostname: "*.tos-cn-shanghai.volces.com" },
{ protocol: "https", hostname: "*.tos-cn-beijing.volces.com" },