Bläddra i källkod

+api www / www없는경우 예외 처리

송용우 2 månader sedan
förälder
incheckning
c486344b9b

+ 1 - 1
app/pages/index.vue

@@ -274,7 +274,7 @@
 
   // 팝업 상태 관리
   const popupStates = ref({
-    pop1: true,
+    pop1: false,
     pop2: false,
     pop3: false,
   });

+ 9 - 6
app/pages/media/news.vue

@@ -102,7 +102,7 @@
 
       // 공지사항과 동일한 방식으로 호출
       const response = await $postForm(`/board_list/media`, {
-        boardId: 'news',
+        boardId: "news",
         page: page,
         searchKind: "",
         searchKeyword: "",
@@ -127,14 +127,15 @@
 
           const newData = response.list.map((item, index) => {
             // 번호 = 전체개수 - ((현재페이지-1) * 페이지크기 + 인덱스)
-            const displayNumber = totalCount.value - ((currentPageNum - 1) * pageSize + index);
+            const displayNumber =
+              totalCount.value - ((currentPageNum - 1) * pageSize + index);
 
             return {
               id: displayNumber, // 순차적인 번호로 표시
               title: item.title,
               date: item.regdate,
               image: item.main_file1
-                ? `http://green.interscope.co.kr/backend${item.main_file1}`
+                ? `https://www.greenwhaleglobal.com/backend${item.main_file1}`
                 : "/img/img--cycle--center.png", // 기본 이미지
               link: item.etc1 || "#", // etc1 필드에 외부 링크 저장
             };
@@ -190,11 +191,11 @@
   const needToFetchData = (targetPage) => {
     const startIndex = (targetPage - 1) * itemsPerPage;
     const endIndex = targetPage * itemsPerPage;
-    
+
     // 필요한 데이터의 백엔드 페이지들 계산
     const startBackendPage = Math.floor(startIndex / backendPageSize) + 1;
     const endBackendPage = Math.ceil(endIndex / backendPageSize);
-    
+
     // 아직 로드되지 않은 페이지가 있는지 확인
     for (let i = startBackendPage; i <= endBackendPage; i++) {
       if (!loadedPages.value.has(i)) {
@@ -210,7 +211,9 @@
 
       const backendPageToLoad = needToFetchData(page);
       if (backendPageToLoad !== null) {
-        console.log(`프론트엔드 페이지 ${page}를 위해 백엔드 페이지 ${backendPageToLoad} 로드`);
+        console.log(
+          `프론트엔드 페이지 ${page}를 위해 백엔드 페이지 ${backendPageToLoad} 로드`
+        );
         await fetchNewsList(backendPageToLoad);
       }
     }

+ 6 - 4
app/pages/media/press.vue

@@ -227,7 +227,7 @@
             id: item.board_idx,
             title: item.title,
             image: item.main_file1
-              ? `http://green.interscope.co.kr/backend${item.main_file1}`
+              ? `https://www.greenwhaleglobal.com/backend${item.main_file1}`
               : "/img/img--sns1.png",
             link: item.etc1 || "#", // etc1 필드에 외부 링크 저장
           }));
@@ -258,11 +258,11 @@
   const needToFetchData = (targetPage) => {
     const startIndex = (targetPage - 1) * itemsPerPage;
     const endIndex = targetPage * itemsPerPage;
-    
+
     // 필요한 데이터의 백엔드 페이지들 계산
     const startBackendPage = Math.floor(startIndex / backendPageSize) + 1;
     const endBackendPage = Math.ceil(endIndex / backendPageSize);
-    
+
     // 아직 로드되지 않은 페이지가 있는지 확인
     for (let i = startBackendPage; i <= endBackendPage; i++) {
       if (!loadedPages.value.has(i)) {
@@ -278,7 +278,9 @@
 
       const backendPageToLoad = needToFetchData(page);
       if (backendPageToLoad !== null) {
-        console.log(`프론트엔드 페이지 ${page}를 위해 백엔드 페이지 ${backendPageToLoad} 로드`);
+        console.log(
+          `프론트엔드 페이지 ${page}를 위해 백엔드 페이지 ${backendPageToLoad} 로드`
+        );
         await fetchPressList(backendPageToLoad);
       }
     }

+ 6 - 4
app/pages/technology/patents.vue

@@ -58,7 +58,10 @@
                 <h4>{{ patent.title }}</h4>
               </UButton>
               <template #content>
-                <UButton @click="patent.isOpen = false" class="modal--close--btn"></UButton>
+                <UButton
+                  @click="patent.isOpen = false"
+                  class="modal--close--btn"
+                ></UButton>
                 <div class="modal--img--container">
                   <img :src="patent.image" alt="" />
                 </div>
@@ -125,7 +128,6 @@
     },
   ]);
 
-
   // 전체 데이터 가져오기 (4개 API 합쳐서)
   const fetchAllPatents = async () => {
     try {
@@ -148,7 +150,7 @@
             title: item.title,
             category: categoryName,
             image: item.main_file1
-              ? `http://green.interscope.co.kr/backend${item.main_file1}`
+              ? `https://www.greenwhaleglobal.com/backend${item.main_file1}`
               : "/img/img--patents.png",
             isOpen: false, // 각 항목별 모달 상태
           }));
@@ -188,7 +190,7 @@
             title: item.title,
             category: categoryName,
             image: item.main_file1
-              ? `http://green.interscope.co.kr/backend${item.main_file1}`
+              ? `https://www.greenwhaleglobal.com/backend${item.main_file1}`
               : "/img/img--patents.png",
             isOpen: false, // 각 항목별 모달 상태
           }));

+ 21 - 0
app/plugins/api.client.js

@@ -0,0 +1,21 @@
+export default defineNuxtPlugin((nuxtApp) => {
+  // 현재 브라우저의 호스트를 확인하여 동적으로 API BASE 설정
+  const currentHost = window.location.hostname;
+  let apiBase = '';
+  
+  // www 유무에 관계없이 동일한 도메인으로 API 요청
+  if (currentHost === 'www.greenwhaleglobal.com') {
+    apiBase = 'https://www.greenwhaleglobal.com';
+  } else if (currentHost === 'greenwhaleglobal.com') {
+    apiBase = 'https://greenwhaleglobal.com';
+  } else {
+    // 개발 환경이나 다른 도메인에서는 환경변수 사용
+    apiBase = nuxtApp.$config.public.apiBase || '';
+  }
+  
+  // API 베이스 URL 덮어쓰기
+  nuxtApp.$config.public.apiBase = apiBase;
+  
+  // 로그 출력 (배포 시 제거 가능)
+  console.log('API Base URL set to:', apiBase);
+});

+ 1 - 1
nuxt.config.ts

@@ -58,7 +58,7 @@ export default defineNuxtConfig({
   },
   runtimeConfig: {
     public: {
-      apiBase: process.env.NUXT_PUBLIC_API_BASE || 'http://green.interscope.co.kr'
+      apiBase: process.env.NUXT_PUBLIC_API_BASE
     }
   }
 })