在Vue项目部署后出现API请求路径异常,通常是因为开发环境和生产环境的API基础路径不同导致的。本地开发时可能使用相对路径或本地服务器地址,而部署后需要指向生产环境的API服务器。
Vue CLI项目支持环境变量配置:
在项目根目录创建环境文件:
.env.development
(开发环境).env.production
(生产环境)在文件中配置API基础路径:
# .env.development
VUE_APP_API_BASE_URL=http://localhost:3000/api
# .env.production
VUE_APP_API_BASE_URL=https://api.yourdomain.com/api
在代码中使用:
axios.defaults.baseURL = process.env.VUE_APP_API_BASE_URL;
对于需要更灵活配置的场景:
在public
文件夹下创建config.json
:
{
"apiBaseUrl": "https://api.yourdomain.com/api"
}
在应用启动时加载配置:
// main.js
import axios from 'axios';
axios.get('/config.json').then(response => {
axios.defaults.baseURL = response.data.apiBaseUrl;
new Vue({
// ... Vue实例
}).$mount('#app');
});
对于开发环境,可以在vue.config.js
中配置代理:
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://localhost:3000',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
}
}
创建可配置的Axios实例:
// src/api/index.js
import axios from 'axios';
const api = axios.create({
baseURL: process.env.VUE_APP_API_BASE_URL || '/api',
timeout: 10000
});
export default api;
通过以上方法,您应该能够解决Vue项目部署后的API路径指向问题。