我目前正在使用Vue.js和webpack构建SPA应用程序进行捆绑。后端API是使用.Net Core构建的。在本地运行时,Vue应用程序在后端访问localhost。我需要能够根据环境动态更改API的路由。有没有一种方法,而不必执行考虑当前URL的大型switch语句?要求是不允许我们为不同的环境更改webpack捆绑包,换句话说,一旦捆绑了,它就必须保持捆绑状态。我试图将静态配置文件传递到捆绑软件中,并根据环境动态更改它们,但是不幸的是,这没有用,因为它会达到它们中原来的值。
答案 0 :(得分:0)
webpack开发服务器具有代理功能。开发时,您可以使用它来代理本地运行的后端。
https://webpack.js.org/configuration/dev-server/#devserver-proxy
例如您可以使用配置将'/ api'指向'localhost:8888 / api'。
您的应用程序在部署时是否在相同的url上运行?如果不是这样,您可能需要反向代理才能将请求传递到后端。
您可以使用axios拦截器,以便仅将开关放在一个位置:
axios.interceptors.request.use(config => {
// check location.host name and append the backend url you want
});
请参阅https://github.com/axios/axios#interceptors
但是,这有点危险,因为switch语句中的URL是字符串,因此即使压缩/串联,也可以从代码中提取所有环境URL。
另一种选择是向客户端代码托管的服务器添加某种终结点,然后在启动应用程序时查询该配置。