这是我的 vite.config.ts:
import { defineConfig } from 'vitest/config'
import vue from '@vitejs/plugin-vue'
import { quasar, transformAssetUrls } from '@quasar/vite-plugin'
const path = require('path');
// https://vitejs.dev/config/
export default defineConfig({
test: {
globals: true
},
plugins: [
vue({
template: {
transformAssetUrls
}
}),
quasar({
sassVariables: 'src/assets/scss/quasar-variables.sass'
})
],
resolve: {
alias: {
"@": path.resolve(__dirname, './src'),
},
},
server: {
proxy: {
'/socket': {
target: 'wss://abc-website.com:4221/',
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace('^/socket', ''),
},
'/streaming/': {
target: 'https://abc-website.com/',
changeOrigin: true,
},
'/': {
target: 'https://abc-website.com/',
changeOrigin: true,
secure: false,
ws: true
},
}
}
})
每当加载我的应用程序时,它都会在我的 locahost 端口上访问 https://abc-website.com。
我只想使用上面的 url 进行后端 api 调用,例如 https://abc-webite.com/api/auth。
在 vite.config.ts 中设置代理后,我还将 baseURL 设置为“api/”。
此外,在稍作更改后,它会调用 REST api,例如 https://localhost:3000/auth,我应该是 https://locahost:3000/api/auth
Vite 代理似乎对我来说不能正常工作。
我想你可以这样做:
server: {
proxy: {
// ... your other proxies
'/api': {
target: 'https://abc-website.com/',
changeOrigin: true,
secure: false,
ws: true,
rewrite: (path) => path.replace(/^\/app/, ''),
},
}
}
那么您对
localhost:3000/api/my-endpoint
等网站的所有请求都应该代理到 https://abc-website.com/my-endpoint
。你不能代理所有“基本”请求,因为它们被保留用于服务其他所有内容、所有资产、index.html 等,但我也很友善