create-react-app项目启动后URL末尾追加build后缀该如何解决
原因分析
你遇到的路径自动添加/build后缀的问题,一般是以下三类原因导致的:
- package.json中配置了
homepage字段
create-react-app会默认读取该字段的路径作为项目的基础路径,如果你在配置部署路径时设置了类似"homepage": "https://yourdomain.com/build"的规则,开发服务启动时也会自动把/build作为路径前缀。 - 自定义webpack配置修改了
publicPath
如果你通过eject暴露了webpack配置,或者使用了craco、react-app-rewired这类工具自定义配置,把开发环境的publicPath设置为了/build,就会出现该问题。 - 浏览器缓存或本地代理规则
如果之前配置过本地代理把根路径重定向到/build,或者浏览器缓存了旧的重定向规则,也会出现访问根路径自动跳转到/build的情况。
解决方案
按照以下步骤排查修改即可:
- 检查package.json的
homepage字段
如果不需要指定生产环境部署路径,直接删除该字段即可;如果需要保留生产环境的路径前缀,可以把值改为.(相对路径),或者在项目根目录新建.env.development文件,添加一行配置PUBLIC_URL=/,单独指定开发环境的根路径。 - 检查自定义webpack配置
如果使用craco,打开craco.config.js找到webpack配置段,把开发环境对应的publicPath改为/;如果是eject后的项目,打开config/webpack.config.js,修改开发环境下的publicPath配置值为/。 - 清理缓存验证
改完配置后重启开发服务,清空浏览器缓存或者用无痕模式访问http://localhost:3000,确认路径是否正常。
确认生效后执行npm run start或yarn start即可默认从根路径加载项目。
内容的提问来源于stack exchange,提问作者minimalpop
相关产品推荐
相关产品推荐

