inflearn logo
강의

Course

Instructor

Vue3 Perfect Mastery: From Basics to Practice - "Practical Edition"

History Mode : SPA, SSR, CSR

hash 모드 배포의 필요성?

61

Junho

9 asked

0

createWebHashHistory 와 createWebHistory 가 있다고 학습을 하였는데, createWebHistory 가 아닌 createWebHashHistory 를 굳이 써야만 이득이 되는 케이스가 따로 있나요? 뭔가 해당 기능의 쓸모에 대해서 설득이나 이해가 되지 않아서요.

vue.js

Answer 2

0

gymcoding

안녕하세요 🙂

  1. 서버 설정 권한이 없을 때

    • GitHub Pages, 공유 호스팅 등

    • 404 리다이렉트 설정 불가능한 환경

  2. 파일 프로토콜 실행 시

    • file:// 로컬 파일 실행

    • 하이브리드 앱

  3. 레거시 브라우저 지원

    • IE9 이하 등 History API 미지원 브라우저

핵심: 서버 설정 없이도 새로고침 시 404 에러가 발생하지 않음

// Hash 모드: example.com/#/about - 서버 설정 불필요
// History 모드: example.com/about - 서버 리다이렉트 설정 필요

대부분 상황에서는 createWebHistory가 더 좋지만, 위 제약사항이 있을 때만 Hash 모드 사용합니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

Junho님의 질문에 대해 createWebHashHistory와 createWebHistory의 차이점과 사용 사례에 대해 설명해드리겠습니다.

  1. createWebHashHistory는 URL에 “#“을 붙여서 경로를 관리하는 방식입니다. 이 방식은 서버 설정 없이 클라이언트 측에서 URL을 변경할 수 있는 장점이 있습니다. 따라서, 서버에 어떠한 특별한 설정을 추가하지 않고도 웹 애플리케이션의 각 페이지에 직접 접근할 수 있습니다. 주로 다음과 같은 상황에서 유용하게 사용됩니다:

    • 서버 설정 권한이 없는 경우: 만약 호스팅하는 서버에서 URL 리라이트 설정을 변경할 수 없다면, hash 모드를 사용하는 것이 유리합니다.
    • 간단한 데모나 프로토타입: 특정 서버 설정 없이 빠르게 결과를 보고 싶은 경우에도 hash 모드는 적합합니다.
  2. createWebHistory는 브라우저의 History API를 사용하여 경로를 관리합니다. 이 방식은 HTML5를 기반으로 하며, 실제 URL 경로와 동일한 경로를 사용하기 때문에 SEO(검색 엔진 최적화) 측면에서 더 유리합니다. 그러나 이 경우, 서버가 모든 경로에 대해 동일한 파일(index.html)을 보내도록 설정해야 하므로 별도의 서버 설정이 필요합니다.

다음은 createWebHashHistory를 사용하는 것이 이점이 있는 상황을 다룬 게시글입니다:
- 라우터 해시 모드 추가 질문에 대한 짐코딩님의 답변은 서버 설정이 어려운 상황에서 해시 모드가 유용할 수 있다는 내용을 다루고 있습니다.

이 링크들이 Junho님에게 해시 모드 사용의 장점에 대한 이해를 돕는 데 도움이 되길 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

질문드립니다.

0

32

0

unplugin-vue-components 질문드립니다.

0

37

2

강의듣다가 헷갈려서 질문드립니다.

0

31

1

와 짐코딩님 강의 들으면서 느끼는게 많네요.

0

32

1

질문드립니다.

0

32

2

라우터 인스톨 후 실행안됨

1

49

2

코드 자동 포매팅 질문

0

68

2

필터 watchEffect 질문입니다.

0

50

1

json-server 오류가 다른게 뜨네요

0

113

1

미리보기가 안됩니당...

0

69

2

unplugin-vue-components

0

81

2

TypeError 질문

0

52

1

v-model="show" :show="show" 같이 사용?

1

57

1

.eslintrc.cjs 가 없습니다

0

95

2

title,content값이 비어서 저장되는데 제가 혹시 어떤 부분을 잘못 작성했는지 ㅜㅜ 알고싶습니다.

0

98

3

_title_like: "", 문의드려요 해당 값을 설정하면 list가 아에 안나옵니다.

0

64

1

@click.prevent="params._page = pageNum"> 에 .value를 안쓰는 이유가 궁금합니다.

0

71

2

중첩된 컴포넌트 문제

0

75

2

교안에 있는 부분이 아닌가요?

0

109

2

useAxios Proxy(Object) RefImpl

0

113

1

axios timeout

0

328

3

강의와 상관은 없지만, 궁금한 점이 있어 질문드립니다.

0

122

2

컴포넌트 분리 부분에서 오류가 나요ㅠㅠ

0

167

2

This dependency was not found:

0

140

2