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

K8s Nginx Ingress部署NextJS报Unexpected token '<'错误

问题原因

Uncaught SyntaxError: Unexpected token '<' 错误的本质是:浏览器请求NextJS加载所需的JS静态资源时,没有收到预期的JS脚本内容,反而收到了HTML格式的index.html页面(HTML内容以<开头),JS引擎解析时碰到非法的<字符直接抛出语法错误。
问题根源在Ingress的全局注解配置:
你在Ingress元数据里全局配置了nginx.ingress.kubernetes.io/rewrite-target: /$2,这个重写规则对两个API路径是有效的,可以把/api/auth/xxx这类带前缀的请求重写为/xxx转给后端微服务。但这个全局规则对前端NextJS的路由完全不适用:

  • 前端路由规则/?(.*)只配置了1个捕获组,$2取值为空
  • 所有发往NextJS的请求(包括/_next/static/路径下的JS、CSS静态资源)都会被全局重写为根路径/
  • NextJS收到静态资源路径的请求,发现重写后的路径是/,找不到对应资源,就默认返回首页的index.html内容,最终导致浏览器解析失败。
修复方法

移除全局的rewrite-target注解,只给两个需要路径裁剪的API接口单独配置重写规则,前端NextJS的路径保持原路径转发,不要做任何重写。
修正后的ingress.yaml配置如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/enable-cors: "true"
spec:
  rules:
    - host: ticket.com
      http:
        paths:
          - path: /api/auth(/|$)(.*)
            pathType: Prefix
            backend:
              service:
                name: auth-srv
                port:
                  number: 3001
            metadata:
              annotations:
                nginx.ingress.kubernetes.io/rewrite-target: /$2
          - path: /api/tickets(/|$)(.*)
            pathType: Prefix
            backend:
              service:
                name: tickets-srv
                port:
                  number: 3002
            metadata:
              annotations:
                nginx.ingress.kubernetes.io/rewrite-target: /$2
          - path: /?(.*)
            pathType: Prefix
            backend:
              service:
                name: client-srv
                port:
                  number: 3000
验证操作
  • 执行kubectl apply -f ingress.yaml应用新配置
  • 等待10-20秒待Ingress规则同步完成,清空浏览器缓存后强制刷新页面
  • 可单独访问NextJS静态资源路径(如http://ticket.com/_next/static/chunks/webpack.js)校验,若返回JS代码而非<!DOCTYPE html>开头的HTML内容,即修复完成。

内容的提问来源于stack exchange,提问作者Rhythm Shandlya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:15:44