包是已经打好了的(正式环境和测试环境都是一样的),所以需要通过系统环境变量去判断接口域名(因为客户端可以直接通过相对地址/api去解决问题,服务端没法去判断)
方法1:启动之前注入一次
export NUXT_PUBLIC_API_BASE=https://api.example.com
然后再运行 nuxt start
方法2: 启动服务的时候直接注入环境变量(为了兼容性可以用cross-env包一层)
//package.json
{
"scripts": {
"start": "**NODE_ENV=production** nuxt start",
},
}
// 创建axios实例
const service = axios.create({
baseURL: process.env.NUXT_PUBLIC_API_BASE // 项目默认配置的接口,
timeout: 5000
})
如果单独在客户端放一个**/api** 这样下次要改后端域名, 两个地方都要改,还不如后台请求api都根据环境变量去拿