问题点

包是已经打好了的(正式环境和测试环境都是一样的),所以需要通过系统环境变量去判断接口域名(因为客户端可以直接通过相对地址/api去解决问题,服务端没法去判断)

1.运行时注入环境

方法1:启动之前注入一次

export NUXT_PUBLIC_API_BASE=https://api.example.com

然后再运行 nuxt start

方法2: 启动服务的时候直接注入环境变量(为了兼容性可以用cross-env包一层)

//package.json
{
"scripts": {
    "start": "**NODE_ENV=production** nuxt start",
  },
}

2.ajax请求配置

// 创建axios实例
const service = axios.create({
  baseURL: process.env.NUXT_PUBLIC_API_BASE // 项目默认配置的接口,
  timeout: 5000
})

如果单独在客户端放一个**/api** 这样下次要改后端域名, 两个地方都要改,还不如后台请求api都根据环境变量去拿