【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;
复制代码

成功!~


目录
相关文章
|
API
在vite.config.js 配置代理
在vite.config.js 配置代理
2173 2
|
安全 API
vite 中配置代理
【10月更文挑战第5天】
2972 61
|
前端开发 数据安全/隐私保护
Uncaught (in promise) Error: Request failed with status code 404 at createError (createError.js:
Uncaught (in promise) Error: Request failed with status code 404 at createError (createError.js:
1795 2
|
前端开发 JavaScript Java
前端解决axios请求的跨域问题【2步完成】
本文介绍如何通过前端配置解决跨域问题,主要针对Vue项目中的`vite.config.js`文件进行修改。作者在联调过程中遇到跨域报错
1247 1
|
安全 API
Vue3 proxy 解决跨域
jsonp 这种方式在之前很常见,他实现的基本原理是利用了HTML里script元素标签没有跨域限制 动态创建script标签,将src作为服务器地址,服务器返回一个callback接受返回的参数
920 0
Vue3 proxy 解决跨域
|
JavaScript 前端开发
Vue3动态面包屑的实现
Vue3动态面包屑的实现
894 0
|
前端开发 Java 测试技术
SpringBoot整合WebSocket实现定时任务消息推送
SpringBoot整合WebSocket实现定时任务消息推送
978 0
|
JavaScript
vue3 vite配置@根路径---解决:找不到模块“./xx/xxx.vue”或其相应的类型声明
vue3 vite配置@根路径---解决:找不到模块“./xx/xxx.vue”或其相应的类型声明
5062 0
|
JavaScript 容器
vue-element-admin 综合开发二:搭建首页架子、侧边栏、修改默认样式、menu和路由跳转页面初体验
这篇文章详细介绍了如何使用Vue和Element UI搭建一个后台管理系统,包括首页布局、侧边栏、样式调整、菜单和路由配置,以及解决开发中遇到的问题。
1935 1
vue-element-admin 综合开发二:搭建首页架子、侧边栏、修改默认样式、menu和路由跳转页面初体验
|
存储 前端开发 中间件
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
3348 0