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

MEAN Stack应用部署Heroku后出现'Uncaught SyntaxError: Unexpected token <'错误求助

解决MEAN Stack部署Heroku后出现'Uncaught SyntaxError: Unexpected token <'的问题

我帮你梳理了这个问题的常见原因和修复步骤,这个错误在SPA(单页应用)部署时特别常见,核心原因是浏览器请求的前端静态资源(JS/CSS)返回了HTML内容(比如404页面或者index.html),导致解析JS时遇到了HTML的<符号,触发语法错误。结合你的场景,按以下步骤排查:

1. 检查Express服务器的静态资源托管与路由Fallback

首先看你的服务器入口文件(比如server.js),必须确保:

  • 先托管Angular构建后的dist文件夹
  • API路由要放在静态资源托管和Fallback路由之前
  • 所有非API请求都返回index.html(SPA的核心需求)

正确的配置示例:

const path = require('path');
const express = require('express');
const app = express();

// 1. 托管Angular静态资源,注意路径要匹配你的dist文件夹结构
app.use(express.static(path.join(__dirname, 'dist/ai-product-review-v1')));

// 2. 定义你的API路由(放在静态资源之后,Fallback之前)
app.use('/api', require('./routes/your-api-routes'));

// 3. SPA Fallback:所有其他请求返回index.html
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'dist/ai-product-review-v1/index.html'));
});

// 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));

重点确认:dist文件夹的路径是否正确——Angular生产构建后,通常会在dist目录下生成一个和项目同名的子文件夹,别漏了这个子路径!

2. 确认Angular的构建配置(base href)

Angular应用部署时必须设置正确的base href,否则静态资源的相对路径会出错。

  • 在package.json的scripts里,确保构建命令包含--base-href /:
    "scripts": {
      "build": "ng build --prod --base-href /",
      "heroku-postbuild": "npm install && npm run build"
    }
    
  • 或者在angular.json的projects -> your-project -> architect -> build -> options里添加"baseHref": "/"。

这个配置确保浏览器请求静态资源时用根路径,不会出现嵌套路径导致的404。

3. 检查Heroku的构建日志

登录Heroku控制台,查看你的应用的构建日志,确认:

  • Node依赖是否安装成功
  • Angular的npm run build是否执行完成,有没有报错
  • dist文件夹是否正确生成

如果构建过程中出现错误(比如Angular CLI版本不兼容、依赖缺失),会导致静态资源缺失,进而触发资源请求返回HTML的问题。

4. 用浏览器开发者工具验证资源请求

打开线上应用的开发者工具(F12),切换到Network标签页,刷新页面:

  • 查看所有JS、CSS资源的请求状态,如果某个资源显示404,点击它查看响应内容——如果响应是HTML(比如你的index.html),就说明这个资源的路径配置错误,回到前面的步骤修正。

按照这些步骤排查,应该能快速定位并解决问题。

内容的提问来源于stack exchange,提问作者Saurabh Borse

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:21:14