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

在HTML中链接外部文件夹JS文件报错:Uncaught SyntaxError问题

解决Create React App中直接引用src目录JS文件的语法错误

这个错误的核心问题是你在public目录的index.html里直接引用了src目录下的JavaScript文件,而Create React App(CRA)的项目结构中,src目录里的文件是需要经过Webpack编译打包的,浏览器无法直接访问这个目录下的原始文件。当你用../src/pages/testing.js这个路径请求时,服务器实际返回的不是你的JS代码,而是一份HTML文件(通常是index.html),所以浏览器解析时会把HTML的开头<当成JS语法,抛出Unexpected token '<'错误。

下面是几种可行的解决方法:

方法1:将JS文件移至public目录(适合独立脚本)

如果你的testing.js不需要和React代码交互,只是独立的脚本逻辑,可以把它放到public目录下(比如新建public/scripts子文件夹),然后在index.html里通过%PUBLIC_URL%变量引用:

<script src="%PUBLIC_URL%/scripts/testing.js"></script>

%PUBLIC_URL%是CRA内置的变量,会自动指向public目录的正确路径,避免相对路径出错。

方法2:在React组件中导入(推荐,适合和React交互的场景)

如果你的JS代码需要和React应用联动,符合CRA开发流程的方式是直接在React组件里导入:

  1. 在src目录的任意组件(比如App.js)中添加导入语句:
import './pages/testing.js';
  1. Webpack会自动将这段代码打包进最终的项目bundle里,无需手动在HTML中添加script标签。

方法3:自定义Webpack配置(不推荐,适合复杂自定义需求)

如果必须保留src目录下的文件并单独引用,需要通过eject命令暴露CRA的Webpack配置,或者使用react-app-rewired工具修改配置,将src/pages目录设置为静态资源目录。但这种方式会增加项目维护成本,不推荐新手使用。

内容的提问来源于stack exchange,提问作者Therone Almadin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:55:17