Vue2/3 config里配置publicPath/base之后proxy的配置修改

本文介绍了在Vue3和Vite环境中如何设置publicPath和代理配置,以解决开发过程中因API请求跨域导致的问题。通过修改vite.config.ts文件,设置proxy将'/myProject/localApi'代理到'http://localApi/api/',确保热更新和路径重写正确,避免额外的公共路径名出现。

记录一下

module.exports = {
  publicPath: '/myProject',
  devServer: {
    disableHostCheck: true, //webpack4.0 开启热更新
    proxy: {
      '/localApi': {
        target: 'http://ip:port/api/',
        changeOrigin: true,
        pathRewrite: { '/myProject/localApi': '' },
      },
    },
  },
};

需要在pathRewrite里加上publicPath的名称,不然代理的地址会多出来它

vue3+vite的(vite.config.ts)

// https://vitejs.dev/config/
export default defineConfig({
  base: "/myProject/",
  plugins: [vue()],
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url)),
    },
  },
  server: {
    proxy: {
      "/myProject/localApi": {
        target: "http://localApi/api/",
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/myProject\/localApi/, ""),
      },
    },
  },
});

前端项目中,通常会使用环境变量或配置文件来管理不同环境下的后端路径。对于`public/config.js`配置后端路径的情况,你可以通过模块化的方式在`request.js`和`vue.config.js`中分别进行调用。 1. 在`request.js`中调用配置文件中的后端路径: 通常在进行HTTP请求的时候,你会使用一个专门的`request.js`文件来封装请求,你可以通过`import`或`require`语句引入`public/config.js`文件中的后端路径配置。假设`config.js`中有一个变量`BASE_URL`存储了后端API的基础地址。 ```javascript // request.js import config from '@/public/config.js'; const request = { // ...其他请求方法 get(url) { return axios.get(`${config.BASE_URL}${url}`); }, post(url, data) { return axios.post(`${config.BASE_URL}${url}`, data); }, // ...其他请求方法 }; export default request; ``` 在上面的代码中,我们假设`axios`已经安装并配置好了。当调用`request.get`或`request.post`方法时,会自动将基础URL附加到请求的URL前面。 2. 在`vue.config.js`中调用配置文件中的后端路径: `vue.config.js`是一个配置Vue CLI项目的文件,在这个文件中,你通常需要进行一些构建配置,比如代理API请求。你可以通过`const config = require('path/to/public/config.js')`的方式引入后端路径配置。 ```javascript // vue.config.js const config = require('./public/config.js'); module.exports = { devServer: { proxy: { '/api': { target: config.BASE_URL, // 在这使用config.js中的BASE_URL changeOrigin: true, pathRewrite: { '^/api': '' // 重写请求路径,因为代理到基础URL } } } } }; ``` 在上面的`vue.config.js`配置中,我们使用了代理来转发以`/api`开头的请求到`config.js`中定义的`BASE_URL`。这样在开发时,前端请求`/api/some-endpoint`会被代理到`BASE_URL/some-endpoint`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值