깃허브 페이지는 SPA를 지원하지않는다.
엄밀하게 말하지면 브라우저라우터를 제공하지 않는다.
이것이 어떤 의미냐?
우리가 깃허브 리포지토리 페이지를 만든다고 가정하자.
예를들어 리포지토리가
라고 가정하자
그리고 브라우저라우터로 페이지를 만들었다고 가정하자..
그럼 깃허브페이지에서는
를 index.html로 받는다.
아래 버튼들은 a href="선택자id"로, 저 버튼을 눌렀을때 해당 컴포넌트로 슬라이드 되는 기능이다.
해당 버튼을 누르면 로컬에서는
으로 링크가 바뀌며 잘 작동한다.
하지만? 로컬에서는 404 페이지를 띄우게 된다.
그 이유가 무엇일까?
이유는 바로 브라우저에서 깃허브페이지에게
을 요청하기 때문이다.
우리는 mbti/#성격유형 파일을 가지고 있지 않다.
따라서 깃허브 페이지 서버가
내놔!!!!! 라고 했을때 어 우리 그거 없어! 라고 하는것이다.
이런 이유는 깃허브 페이지는 브라우저 라우터를 지원하지 않는데, 이 브라우저 라우터는 history api를 갖고있다.
깃허브 페이지는 브라우저 라우터를 지원하지 않기에 해당 성격유형 html은 깃허브 페이지에서만 알고 있다.
즉 리액트에서 처리를 해주어야 하는 부분이다.
그래서 깃허브 페이지 배포를 할때는 보통 해시 라우터를 이용한다.
해시 라우터의 경우 history api를 지원하지 않으며,
예컨대
로 가고자 할때,
깃허브 페이지 서버에게
즉 도메인 index.html만을 요청한다.
하위 경로인 아이스크림은 리액트에서 처리를 해준다.
그래서 아이스크림 페이지가 잘 보여지게 될 수 있따..
설명할수록 http 통신에 대해 공부를 해야겠다는 생각이 더욱 드네요. http를 아예 몰라서 오개념을 너무 많이 내뿜은거 같음
암튼 저의 상황의 경우 해당 a href="선택자 id"를 이용해 해당 컴포넌트로 슬라이드되게끔 구현했기에 그걸 막 NavLink로 바꾸는 등으로 수정하기 힘든 상황이고, 결국 404.html을 만드는 방법으로 가야할 것 같습니다.
해당 내용의 관련 링크는
1. https://an-thropology.tistory.com/32
2. https://www.freecodecamp.org/news/deploy-a-react-app-to-github-pages/
참고해서 썻습니다.
그리고 저는 이제부터 서버를 올릴때 전부 파베로 처리하기로 결심했습니다.
머야 글썼는데 링크가 다 이상하게 되었자나 다시 쓸래
다시 올려줘 공부해볼래
올렷서!!!!
내가 오개념 쓴게 있을가바 일단 디씨에게 글써봣다...... 구글에 찾아봐도 전부 "history api"를 지원안해서 그래요! 라는 글만 있어서...... ㅠㅠ 잘 설명한질 모르겟서..
해당 버튼을 누르면 로컬에서는 a17d2cad2f1b782a99595a48fa9f3433f728bd6f6b8abd3f6f5cae4 으로 링크가 바뀌며 잘 작동한다. 하지만? 로컬에서는 404 페이지를 띄우게 된다. 이게 먼 말이야?
같은 로컬인데 왜 하나는 바뀌고 하나는 안된다는거임?
링크는 바꼈는데 404에러가 뜬다는 말이야..?
앗 이부분을 좀 더 설명해서 노션에 정리해볼게! 잠시만!!
응응 링크가 mbti#성격유형으로 바뀌었는데, 우리는 mbti 파일은 있지만 성격유형 파일은 없기에 에러가 뜨는거야!
아하 그러면 깃허브에서는 기본 index.html만 받고 그 하위 파일의 html은 받지 않기 떄문에 그 파일처리는 리액트에서 해준다는 말이구나.. 좋은 내용이네
헉 아냐아냐 내 글보지 말아줘 나 지금 잘못설명했다는 평가 듣는중이라 ;ㅅ; 잊어줘1!!!! 내가 옛날 문서를 참고해서 좀 이상한걸 많이 봐버렷서 ;ㅅ; 일단 이따가 추가해볼게 미안 ;ㅅ;
떼껄룩이라는 친구가 글써주엇어! 그거 한벜 확인해봐!! ㅎ.ㅎ
해당 댓글은 삭제되었습니다.
귀여운 콘인걸 ^~^
오개념이 많다는 소리를 들어서 일단 다시 보충해서 쓰겠습니다..
히스토리 ㅇㅅㅇ 지원해준다
서브라우팅 하면 문제 없는데 뭐가 문제인지 모르겠어 본질은 벡엔드에 요청 보내는게 뭔가인지 차이임
흠 방금 라우팅에는 hash-based랑 history-based가 있다는 소리를 들었는데, 이때 history based또한 404에러로 해결할수있다는 말을 들었걸랑 흐음........... 옛날문서를 참고해서 글써서 그런가 좀 많이오개념을 쓴듯... 더 찾아봐야겟다
다음에 올려줘 기대해볼께