最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3+vite+ts如何配置多個代理并解決報404問題

 更新時間:2025年04月03日 10:00:26   作者:周家大小姐.  
這篇文章主要介紹了vue3+vite+ts如何配置多個代理并解決報404問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue3+vite+ts配置多個代理并解決報404

之前配置接口代理總是報404,明明接口地址是對的但還是報是因數(shù)寫法不對;用了vue2中的寫法

pathRewrite改為rewrite

根路徑下創(chuàng)建env文件根據(jù)自己需要名命

.env.development文件內容

# just a flag
ENV='development'

# static前綴
VITE_APP_PUBLIC_PREFIX=""
# 基礎模塊
VITE_APP_BASIC_PREFIX='/basicSetting'
# 任務模塊
VITE_APP_TASK_PREFIX='/task'

# 網(wǎng)關
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

創(chuàng)建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,

  /**
   *  網(wǎng)關服務文件前綴
   */
  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)
          })

效果:

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

抚远县| 大宁县| 九龙城区| 富蕴县| 墨江| 精河县| 玉树县| 信丰县| 五台县| 天峨县| 河池市| 台东市| 福泉市| 盐山县| 玉林市| 南京市| 旺苍县| 黄陵县| 开平市| 公主岭市| 峨眉山市| 吉木乃县| 特克斯县| 辽源市| 漳州市| 拉孜县| 丹东市| 河间市| 金平| 静宁县| 龙海市| 井冈山市| 蒙自县| 达孜县| 雷山县| 甘洛县| 宾阳县| 陵水| 尖扎县| 永城市| 固始县|