当Vue项目上线后API请求路径变成本地路径,通常是由于以下几种原因导致的:
在项目根目录创建或修改以下文件:
.env.development
(开发环境)
VUE_APP_API_BASE_URL=/api
.env.production
(生产环境)
VUE_APP_API_BASE_URL=https://api.yourdomain.com
// src/utils/request.js
import axios from 'axios'
const service = axios.create({
baseURL: process.env.VUE_APP_API_BASE_URL,
timeout: 5000
})
export default service
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://dev.api.yourdomain.com',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
},
// 其他配置...
}
在入口文件(main.js)或配置文件中:
// 根据环境动态设置API基础路径
const baseURL = process.env.NODE_ENV === 'production'
? 'https://api.yourdomain.com'
: '/api'
Vue.prototype.$apiBaseUrl = baseURL
确保生产服务器正确配置了API代理:
location /api {
proxy_pass https://api.yourdomain.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
npm run build
VUE_APP_
开头通过以上方法,应该能解决Vue项目上线后API请求路径变成本地路径的问题。