diff --git a/backend/target/classes/com/maternalmall/config/WebMvcConfig.class b/backend/target/classes/com/maternalmall/config/WebMvcConfig.class index 02a72c7..aeba192 100644 Binary files a/backend/target/classes/com/maternalmall/config/WebMvcConfig.class and b/backend/target/classes/com/maternalmall/config/WebMvcConfig.class differ diff --git a/backend/target/classes/com/maternalmall/controller/FileUploadController.class b/backend/target/classes/com/maternalmall/controller/FileUploadController.class index 2edc01e..32a1cee 100644 Binary files a/backend/target/classes/com/maternalmall/controller/FileUploadController.class and b/backend/target/classes/com/maternalmall/controller/FileUploadController.class differ diff --git a/frontend/src/api/http.js b/frontend/src/api/http.js index 732f576..4b42ee8 100644 --- a/frontend/src/api/http.js +++ b/frontend/src/api/http.js @@ -1,7 +1,7 @@ import axios from 'axios' const http = axios.create({ - baseURL: 'http://localhost:8080', + baseURL: '/api', timeout: 10000 }) diff --git a/frontend/src/views/admin/AdminBanners.vue b/frontend/src/views/admin/AdminBanners.vue index 4e79020..0b0c182 100644 --- a/frontend/src/views/admin/AdminBanners.vue +++ b/frontend/src/views/admin/AdminBanners.vue @@ -90,7 +90,7 @@ const banners = ref([]) const bannerModalVisible = ref(false) const bannerForm = reactive({ id: null, imageUrl: '', linkUrl: '', sortNo: 1, enabled: true }) -const uploadAction = 'http://localhost:8080/api/upload/image' +const uploadAction = '/api/upload/image' const uploadHeaders = computed(() => ({ 'X-Token': localStorage.getItem('token') || '' })) diff --git a/frontend/src/views/admin/AdminProducts.vue b/frontend/src/views/admin/AdminProducts.vue index f04d7bb..b54f67d 100644 --- a/frontend/src/views/admin/AdminProducts.vue +++ b/frontend/src/views/admin/AdminProducts.vue @@ -126,7 +126,7 @@ const merchantOptions = ref([]) const productModalVisible = ref(false) const productForm = reactive({ id: null, name: '', category: '', description: '', price: 0, stock: 0, imageUrl: '', merchantId: null, approved: false }) -const uploadAction = 'http://localhost:8080/api/upload/image' +const uploadAction = '/api/upload/image' const uploadHeaders = computed(() => ({ 'X-Token': localStorage.getItem('token') || '' })) diff --git a/frontend/src/views/merchant/MerchantProducts.vue b/frontend/src/views/merchant/MerchantProducts.vue index 51be18b..fb1a05b 100644 --- a/frontend/src/views/merchant/MerchantProducts.vue +++ b/frontend/src/views/merchant/MerchantProducts.vue @@ -110,7 +110,7 @@ const products = ref([]) const productModalVisible = ref(false) const productForm = reactive({ id: null, name: '', category: '', description: '', price: 0, stock: 0, imageUrl: '', approved: false }) -const uploadAction = 'http://localhost:8080/api/upload/image' +const uploadAction = '/api/upload/image' const uploadHeaders = computed(() => ({ 'X-Token': localStorage.getItem('token') || '' })) diff --git a/frontend/vite.config.js b/frontend/vite.config.js index 8084277..d048596 100644 --- a/frontend/vite.config.js +++ b/frontend/vite.config.js @@ -4,6 +4,18 @@ import vue from '@vitejs/plugin-vue' export default defineConfig({ plugins: [vue()], server: { - port: 5173 + port: 5173, + proxy: { + '/api': { + target: 'http://localhost:8080', + changeOrigin: true, + secure: false + }, + '/uploads': { + target: 'http://localhost:8080', + changeOrigin: true, + secure: false + } + } } })