React项目特定场景触发SyntaxError: Unexpected token '<'问题求助
错误排查方向
检查JS资源的实际响应内容:
Unexpected token '<'在JS文件首行几乎都是因为服务器返回了HTML(比如404页面、首页代码)而非JS。打开DevTools「网络」面板,筛选JS类型资源,刷新后查看main.1b232b6f.js的详情:- 确认响应头的
Content-Type是否为application/javascript,如果是text/html,说明路由匹配错误 - 直接查看响应体,看是不是包含
<html>之类的HTML标签
- 确认响应头的
排查.htaccess的响应式重写规则:重点检查和移动端/屏幕尺寸相关的规则:
- 有没有根据User-Agent或自定义请求头(可能和屏幕宽度有关)设置重定向/重写规则?
- 临时注释掉所有移动端相关的规则,部署后验证问题是否消失,逐步排查出有问题的规则
- 检查是否存在规则错误匹配了JS文件的请求路径,把它导向了HTML页面
对比不同屏幕尺寸下的资源请求路径:
- 分别在桌面端和小屏幕模式下,查看
main.1b232b6f.js的请求URL是否一致 - 检查前端代码中有没有根据屏幕宽度动态修改资源加载路径的逻辑,导致小屏幕下请求了错误的地址
- 分别在桌面端和小屏幕模式下,查看
验证缓存影响:
- 在DevTools中勾选「禁用缓存」后刷新页面,看错误是否还出现
- 检查.htaccess中针对JS文件的缓存规则,是否存在基于请求头的错误缓存策略,导致错误响应被持久缓存
排查CDN/反向代理规则:如果网站使用了CDN或反向代理,检查它们是否有基于设备类型、屏幕宽度的路由或缓存规则,导致JS请求被错误转发到HTML页面
内容的提问来源于stack exchange,提问作者erm-web
相关产品推荐
相关产品推荐

