개발자

리액트 프로젝트 vite로 빌드후 서버에 배포시 cannot get...

2024년 01월 22일조회 239

react-router-dom 을 사용중에있습니다. vite로 빌드하고 서버에 올렸는데... 경로 이동시 cannot get 이 뜹니다. 찾아본결과 서버에서 요청 url을 찾아서 그렇다 , 모든 서버 요청을 /index.html로 리디엑션하도록 하면 된다고 하는데 혹시 vite에서 그런 설정을 할 수 있나요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 1

허니님의 프로필 사진

public 폴더 내에 _redirects 파일 생성 /* /index.html 200 입력후 저장

우엉김밥님의 프로필 사진

우엉김밥

작성자

웹관련 프론트엔드 개발자2024년 01월 23일

해봤는데 안되네용 ㅠㅠ 답변 감사합니다! 덕분에 좋은거 알았습니다@@

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 01월 22일

vite.config.js 파일에서 historyApiFallback 옵션을 사용하여 모든 서버 요청을 index.html로 리디렉션 할 수 있습니다. 예를 들면 다음과 같이 설정할 수 있습니다: ```js import { defineConfig } from 'vite' import reactRefresh from '@vitejs/plugin-react-refresh' export default defineConfig({ plugins: [reactRefresh()], server: { // 모든 서버 요청을 index.html로 리디렉트 historyApiFallback: { rewrites: [ { from: /\/$/, to: '/index.html' }, { from: /\/.*$/, to(context) => context.url } ] }, } }) ``` 위 설정은 정규 표현식 `/\/$/`가 루트 URL에 일치하면 `/index.html`로, 그 외의 모든 경로는 원래의 URL로 리디렉트합니다. 또한, 이것은 개발 서버에서만 작동하기 때문에 배포시에는 웹 서버 설정을 통해 동일한 동작을 구현해야 합니다. 예를 들어 Nginx를 사용하는 경우 location 블록에 try_files 명령어를 사용하여 처리할 수 있습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!