개발자
react-router-dom 을 사용중에있습니다. vite로 빌드하고 서버에 올렸는데... 경로 이동시 cannot get 이 뜹니다. 찾아본결과 서버에서 요청 url을 찾아서 그렇다 , 모든 서버 요청을 /index.html로 리디엑션하도록 하면 된다고 하는데 혹시 vite에서 그런 설정을 할 수 있나요?
답변 1
우엉김밥
작성자
웹관련 프론트엔드 개발자 • 2024년 01월 23일
해봤는데 안되네용 ㅠㅠ 답변 감사합니다! 덕분에 좋은거 알았습니다@@
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 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 명령어를 사용하여 처리할 수 있습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!