GitHub 페이지에 Vite/React 애플리케이션을 배포하는 것은 흥미로운 이정표이지만, 특히 이미지와 자산을 처리할 때 프로세스에서 예상치 못한 문제가 발생할 수 있습니다. 이 블로그 게시물은 초기 배포부터 일반적인 문제 해결 및 효과적인 솔루션 도달까지 전체 프로세스를 안내합니다.
초심자이든 경험이 있는 사람이든 이 가이드는 일반적인 함정을 피하고 모든 자산이 올바르게 렌더링된 Vite/React 앱을 성공적으로 배포하는 데 도움이 될 것입니다.
자세히 알아보기 전에 다음 사항을 확인하세요.
먼저 Vite/React 애플리케이션이 적절하게 초기화되고 로컬 호스트에서 작동하는지 확인하세요. 다음과 같이 기본 Vite 프로젝트를 생성할 수 있습니다:
npm create vite@latest
종속성 설치:
npm install
로컬에서 프로젝트를 실행하여 모든 것이 제대로 작동하는지 확인하세요.
npm run dev
프로젝트가 준비되면 GitHub 저장소에 푸시하세요.
GitHub 페이지는 애플리케이션이 일반적으로 저장소 이름인 특정 기본 URL에서 제공될 것으로 예상합니다. 다음 사항을 반영하도록 vite.config.js 파일을 업데이트하세요.
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' export default defineConfig({ base: process.env.NODE_ENV === 'production' ? '/your-repo-name/' : '/', plugins: [react()], })
기본 옵션은 애플리케이션이 배포될 때 올바른 기본 경로를 사용하도록 보장합니다.
배포를 처리하려면 gh-pages 패키지를 설치해야 합니다.
npm install gh-pages --save-dev
package.json에 다음 스크립트를 추가하여 배포 프로세스를 자동화하세요.
"scripts": { "predeploy": "npm run build", "deploy": "gh-pages -d dist" }
배포 실행:
npm run deploy
이 시점에서 프로젝트는 https://
배포 후 앱이 빈 페이지를 로드하는 것을 볼 수 있습니다. 이는 라우팅 문제로 인해 발생하는 경우가 많습니다. 기본적으로 서버 측 라우팅에 의존하는 반응 라우터-dom의 BrowserRouter가 사용되지만 GitHub 페이지는 정적 파일을 제공하고 클라이언트 측 경로를 처리하지 않습니다.
해결책: HashRouter 사용
이 문제를 해결하려면 index.js 또는 main.jsx 파일에서 BrowserRouter를 HashRouter로 전환하세요.
import { HashRouter } from 'react-router-dom'; createRoot(document.getElementById('root')).render();
HashRouter는 URL에 해시 기호(#)를 사용하여 탐색 상태를 추적하므로 GitHub 페이지가 404를 반환하지 않고도 다양한 경로를 적절하게 제공할 수 있습니다.
빈 페이지 문제를 해결한 후 직면할 수 있는 또 다른 문제는 앱이 홈페이지에서 작동하지만 다른 경로로 이동할 때, 특히 /blogs 또는 /projects와 같은 경로에 직접 액세스하는 경우 404 오류가 표시되는 것입니다.
이는 GitHub 페이지가 index.html 파일을 제공하는 방법만 알고 React Router가 관리하는 경로를 인식하지 못하기 때문에 발생합니다.
해결책: GitHub 페이지 설정에서 404 오류 처리
이 문제를 해결하려면 public/ 폴더에 404.html 파일을 만들어야 합니다. 이 파일은 GitHub 페이지가 인식하지 못하는 모든 경로에 대해 index.html 파일을 제공하여 React Router가 라우팅을 처리할 수 있도록 합니다:
가장 일반적인 배포 문제 중 하나는 이미지가 올바르게 로드되지 않는 것입니다. localhost에서는 제대로 작동하지만 GitHub 페이지에 배포한 후 이미지 링크가 끊어지는 것을 볼 수 있습니다.
예를 들어 구성요소에서 다음과 같은 이미지를 참조할 수 있습니다.
문제: 잘못된 이미지 경로
여기서 문제는 앱이 하위 디렉터리(예: /your-repo-name/)에 배포될 때 절대 경로(/로 시작하는)가 제대로 작동하지 않는다는 것입니다. GitHub 페이지는 https://
해결책: BASE_URL 사용
이 문제를 해결하려면 모든 이미지를 공개/이미지로 이동하세요. 이는 선택 사항이지만 그렇게 하는 것이 좋습니다. 환경에 따라 이미지 경로에 BASE_URL을 동적으로 추가합니다.
const BASE_URL = import.meta.env.BASE_URL;
이렇게 하면 개발(localhost)과 프로덕션(GitHub 페이지) 모두에서 올바른 경로가 사용됩니다.
라우팅 및 이미지 경로에 대한 수정 사항을 구현한 후 애플리케이션을 다시 빌드하고 다시 배포하세요.
npm run build npm run deploy
이제 모든 이미지가 올바르게 렌더링되고 모든 경로가 올바르게 처리되어 Vite/React 애플리케이션이 완전히 배포되어야 합니다.
요약:
이 단계를 수행하면 Vite/React 앱이 GitHub 페이지에서 원활하게 작동하고 활성화되어야 합니다. 즐거운 코딩과 배포를 즐겨보세요!
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3