create-react-app开发ip-address-tracker时script.js无法加载求助
问题原因
你用create-react-app搭建的React项目有固定的静态资源访问规则:
- public文件夹是开发服务和打包后的静态资源根目录,index.html里写的资源路径默认相对于该目录
- src目录下的所有文件需要经过webpack编译打包处理,不会直接作为静态资源暴露,所以你写的
../src/script.js路径根本无法被正常访问,这就是脚本不生效的核心原因。
解决方案
根据你script.js的用途选对应的处理方式即可:
- 如果script.js是和React逻辑无关的纯全局静态脚本:把script.js文件移动到public文件夹下,然后把index.html里的引入代码改成
<script src="./script.js"></script>即可。 - 如果script.js里的逻辑需要和React组件交互、或者用到项目里的其他依赖:不要用script标签引入,直接将script.js的内容调整为符合ES模块规范的写法,在需要用到对应逻辑的React组件中通过import导入使用即可,比如在App.js里添加
import './script.js'就能执行脚本里的全局逻辑,要是需要调用脚本里的特定方法,提前把方法export导出再按需导入就行。
内容的提问来源于stack exchange,提问作者Bryan Hain
相关产品推荐
相关产品推荐

