当前位置: 首页 > news >正文

vue3+vite+ts配置多个代理并解决报404问题

之前配置接口代理总是报404,明明接口地址是对的但还是报是因数写法不对;用了vue2中的写法

pathRewrite改为rewrite

根路径下创建env文件根据自己需要名命

.env.development文件内容

# just a flag
ENV='development'# static前缀
VITE_APP_PUBLIC_PREFIX=""
# 基础模块
VITE_APP_BASIC_PREFIX='/basicSetting'
# 任务模块
VITE_APP_TASK_PREFIX='/task'# 网关
VITE_APP_GATEWAY_PREFIX='/gateway/admin'
# 主题
VITE_APP_THEME=light# vue-cli uses the VITE_CLI_BABEL_TRANSPILE_MODULES environment variable,
# to control whether the babel-plugin-dynamic-import-node plugin is enabled.
# It only does one thing by converting all import() to require().
# This configuration can significantly increase the speed of hot updates,
# when you have a large number of pages.
# Detail:  https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js
VITE_CLI_BABEL_TRANSPILE_MODULES=true

在vite.config.ts中配置poxy代理

import proxyConfig from './proxy'
const viteConfig = defineConfig(({ mode }) => {return {server: {host: '0.0.0.0', //解决“vite use `--host` to expose”port: 8080,open: true,proxy: proxyConfig}}
})
export default viteConfig

创建proxy.ts文件

import { ProxyOptions } from 'vite'import { loadEnv } from 'vite'const env = loadEnv('development', process.cwd())const proxies: Record<string, ProxyOptions> = {// 任务模块[env.VITE_APP_TASK_PREFIX as string]: {target: 'http://xxx:31249', // 目标地址 --> 服务器地址changeOrigin: true, // 允许跨域rewrite: (path) => path.replace(new RegExp(`^${env.VITE_APP_TASK_PREFIX}`), '')},[env.VITE_APP_GATEWAY_PREFIX as string]: {target: 'http://192.168.8.xx:8080', // 目标地址 --> 服务器地址changeOrigin: true, // 允许跨域rewrite: (path) => path.replace(new RegExp(`^${env.VITE_APP_GATEWAY_PREFIX}`), '')}// 添加其他代理配置
}export default proxies

api.ts接口使用

import request from '@/request/request'
import settings from '@/settings'
export function getTaskList(data: any): Res<any> {return request({url: settings.taskPrefix + '/adm/detectionTasks/page',method: 'post',data})
}

其中的settings.ts文件可以不用封装直接写你的env就行;也可以像我一样封装

export default {/*** 任务模块*/taskPrefix: import.meta.env.VITE_APP_TASK_PREFIX,/***  网关服务文件前缀*/gatewayPrefix: import.meta.env.VITE_APP_GATEWAY_PREFIX
}

页面中调用接口

import { getTaskList } from '@/api'const param = {entity: {},betweenCondition: {},page: {page: 1,pageSize: 10}}getTaskList(param).then((res) => {console.log(res)}).catch((err) => {console.log(err)})

效果:

http://www.lryc.cn/news/308494.html

相关文章:

  • 开创未来:探索OpenAI首个AI视频模型Sora的前沿技术与影响
  • Redis---持久化
  • 从 Flask 切到 FastAPI 后,起飞了!
  • 状态码转文字!!!(表格数字转文字)
  • Pytorch 复习总结 4
  • YOLOv9中加入SCConv模块!
  • 代码随想录算法训练营第四十七天丨198. 打家劫舍、​ 213. 打家劫舍 II​、337. 打家劫舍 III
  • 龙蜥Anolis 8.4 anck 安装mysql5.7
  • 【踩坑】修复xrdp无法关闭Authentication Required验证窗口
  • python学习笔记 - 标准库常量
  • 视频和音频使用ffmpeg进行合并和分离(MP4)
  • 02| JVM堆中垃圾回收的大致过程
  • R语言数据可视化之美专业图表绘制指南(增强版):第1章 R语言编程与绘图基础
  • 网站添加pwa操作和配置manifest.json后,没有效果排查问题
  • MongoDB聚合运算符:$cosh
  • Jenkins配置在远程服务器上执行shell脚本(两种方式)
  • Java+SpringBoot,打造社区疫情信息新生态
  • js ES6判断字符串是否以某个字符串开头或者结尾startsWith、endsWith
  • 预研项目完成后小批量验证(技术变更流程)
  • Bert-as-service 实战
  • 微信小程序(四十七)多个token存储
  • 机器学习(II)--样本不平衡
  • 几个好用的 VUE Table
  • Vue源码系列讲解——实例方法篇【三】(生命周期相关方法)
  • 百度SEO工具,自动更新网站的工具
  • 供应链|NUS覃含章MS论文解读:数据驱动下联合定价和库存控制的近似方法 (二)
  • 删除有序数组中的重复项Ⅱ
  • Java底层自学大纲_数据结构和算法篇
  • 群晖NAS配置WebDav结合内网穿透实现公网访问本地影视资源
  • Vue3报错Promise executor functions should not be async.