【Vite】Vite设置好了Proxy,但接口却404!解决方案来了!

简介: 前言最近在做一个Vue3+Vite+TypeScript的项目,进行一番网上冲浪后,参考了众多🐴友的方案,配置完vite.config.ts准备开始与后端的同学开始联调,发现无论怎么样都是404,然后就开始了一步步的排查!

前言

最近在做一个Vue3+Vite+TypeScript的项目,进行一番网上冲浪后,参考了众多🐴友的方案,配置完vite.config.ts准备开始与后端的同学开始联调,发现无论怎么样都是404,然后就开始了一步步的排查!

错误原因

vite.config.ts

const viteEnv = loadEnv(configEnv.mode, `.env.${configEnv.mode}`) as ImportMetaEnv
复制代码

上面这个是之前老版本的vite的写法

proxy:

server: {
    host: '0.0.0.0',
    port: 3200,
    open: true,
    proxy: createViteProxy(viteEnv)
}
function createViteProxy(viteEnv: ImportMetaEnv) {
   const isOpenProxy = viteEnv.VITE_HTTP_PROXY === 'true';
  if (!isOpenProxy) return undefined;
  const { http } = getEnvConfig(viteEnv);
  const proxy: Record<string, string | ProxyOptions> = {
    [http.proxy]: {
      target: http.url,
      changeOrigin: true,
      rewrite: path => path.replace(new RegExp(`^${http.proxy}`), '')
    }
  };
  return proxy; 
}
复制代码

其实整个看下来很难找到问题,我反复看了多次,感觉写的没啥毛病,排查完之后发现问题的本身居然在viteEnv上,我打印了一下viteEnv发现根本就没有VITE_HTTP_PROXY这个属性,然后就觉得是loadEnv有问题,上官网看了看,果然,这里说一下loadEnv

  • 检查process.cwd()路径下.env.development.local、.env.development、.env.local、.env这四个环境文件。
  • 输出NODE_ENV和VITE_开头的键值对。
  • VITE_开头的键值对后面的不会覆盖前面的。
  • NODE_ENV的值后面的会覆盖前面的。

新版本改成了这样写

const viteEnv = loadEnv(configEnv.mode, process.cwd()) as ImportMetaEnv;
复制代码

成功!~


目录
相关文章
|
8月前
|
API
在vite.config.js 配置代理
在vite.config.js 配置代理
826 2
|
前端开发 搜索推荐 API
webpack和vite devServer的进阶用法:配置proxy修改请求和响应
在前端日常开发中我们一般都是配置本地开发服务器的proxy来解决跨域问题,查看官网文档或者通过搜索引擎搜出来的都是比较基础的用法。
2153 0
|
3月前
|
监控 JavaScript 安全
在 Vue 项目中配置 CORS 时的注意事项
【10月更文挑战第20天】在 Vue 项目中配置 CORS 需要综合考虑多个方面的因素,从配置的准确性、稳定性、兼容性到测试、监控和安全等。通过细心的规划和实施,以及与团队成员的协作,可以有效地解决跨域问题,并确保项目的顺利进行。
|
3月前
|
安全 API
vite 中配置代理
【10月更文挑战第5天】
737 61
|
3月前
|
存储 前端开发 中间件
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
720 0
|
5月前
|
移动开发 JavaScript 前端开发
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
这篇文章介绍了在UniApp H5项目中处理跨域问题的两种方法:通过修改manifest.json文件配置h5设置,或在项目根目录创建vue.config.js文件进行代理配置,并提供了具体的配置代码示例。
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
|
4月前
|
JavaScript
Vue3基础(19)___vite.config.js中配置路径别名
本文介绍了如何在Vue 3的Vite配置文件`vite.config.js`中设置路径别名,以及如何在页面中使用这些别名导入模块。
176 0
Vue3基础(19)___vite.config.js中配置路径别名
|
8月前
|
JavaScript
Nuxt3 实战 (四):安装 Nuxt UI 和配置 Typescript 类型检查
这篇文章介绍了在项目中安装和配置Nuxt UI以及TypeScript的步骤。作者在前言中提到考虑了AntDesignVue和Element-Plus,但最终选择了NuxtUI,因为它更适合年轻化的项目,并且与Nuxt兼容。安装Nuxt UI需要执行一系列命令,同时会自动安装一些相关模块。然后,可以在Nuxt应用中使用Nuxt UI的所有组件和可组合函数。此外,还介绍了如何添加图标库和配置TypeScript。
182 0
Nuxt3 实战 (四):安装 Nuxt UI 和配置 Typescript 类型检查
|
8月前
|
JSON JavaScript 前端开发
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
285 1
|
8月前
|
JavaScript API
vite配置代理
vite配置代理
165 4