我用 “ webpack”:“ 3.8.1”, “反应”:“ ^ 16.5.2”
启动纱线启动应用程序时
但是在yarn生成并服务-s生成之后,不要调用api。 (但是react-router在工作)
换句话说,它不适用于http请求。构建完成后
但是从头开始,http请求运行良好。
(我在package.json中使用代理。前端是react,后端是spring boot)
答案 0 :(得分:0)
我怀疑您的问题是这样的。在开发时,如您在问题中所述,您正在package.json中使用代理设置。
具有此代理设置后,webpack开发服务器会将您的请求从客户端代理到服务器。这就是让您在应用程序中将baseurl保留为不发送请求的原因。换句话说,由于有了这个代理,您可以简单地编写/api/endpoint/
。
但是,当您使用serve模块进行构建和服务时,webpack dev服务器不再是通过浏览器为您的应用程序服务的服务器,这意味着不再有客户端到服务器的代理请求。这意味着您仅向/api/endpoint/
发出请求,这意味着实际上没有服务器收到您的请求。
没有实际更改您的反应代码以使用包括请求中的基本URL的完整URL,您实际上需要让服务器负责将build文件夹静态地提供给Web。这样,您的/api/endpoint
会指向服务该应用程序的服务器,这也是您的api。