javascript - Dodavanje proxyja u vite vodi me na taj proxy URL na mom localhostu. Želim ga koristiti samo za API pozive prema backendu
Evo mog 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
},
}
}
})
Kad god se moja aplikacija učita, ona me preusmjeri na https://abc-website.com dok sam na svom localhost portu.
Želim koristiti gornji URL samo za pozive backend API-ja, poput https://abc-webite.com/api/auth.
Također sam postavio baseURL na "api/" nakon što sam postavio proxy u vite.config.ts.
Također, nakon male promjene, poziva REST API kao https://localhost:3000/auth, trebala bi zapravo biti https://localhost:3000/api/auth
Čini se da Vite proxy ne radi ispravno za mene.
Odgovor #1
Mislim da bi mogao nešto ovako:
server: {
proxy: {
// ... your other proxies
'/api': {
target: 'https://abc-website.com/',
changeOrigin: true,
secure: false,
ws: true,
rewrite: (path) => path.replace(/^\/app/, ''),
},
}
}
Tada svi vaši zahtjevi prema stranicama poput localhost:3000/api/my-endpoint trebali bi biti proslijeđeni na https://abc-website.com/my-endpoint. Ne možete proslijediti sve "osnovne" zahtjeve, jer su rezervirani za posluživanje svega ostalog, svih resursa, index.html datoteka i slično, ali također sam ljubazan
