성장과정(dev)/Frontend(feat. Vue, Next.js)
vue multipage 개발 시 사용자 분기처리, vue url 설정
lowellSunny
2021. 2. 17. 10:26
vue-router 기본은 해시모드이다. 그래서 url에 꼭 #이 끼게 된다.
※ 이슈 ※
문제는 사용자, 관리자 페이지를 나누면서 사용자는 "/", 관리자는 "/console" 로 나뉘게 되는데
http://localhost:8081/console 을 치면 http://localhost:8081/console# 로 접속되면서 해시값 # 뒤부터 경로로 읽어들여 실제 접속페이지는 "/" 이쪽으로 들어가게 된다.
내가 원하는 것은 http://localhost:8081/console 을 쳤을 때 관리자 화면에 접속이 되는 것이다.
이걸 검색을 뭐라고 해야할까 싶어 찾다가 우선 시간이 좀 있어서 포기했었는데
다른 이슈에 대해 검색을 하다가 찾게 되었다.
※ 해결방법 ※
VUE router의 default인 hash mode를 history mode로 변경
new Router의 옵션 중 mode를 history로 변경하면 된다. 적용하고 나니 url에 해시 표시 없이 사용자, 관리자 context path에 따라 잘 나타나고 접속하고 싶은 페이지로 잘 접속된다.
소스코드 (src/router.js)
export default new Router({
mode: "history",
routes: [
...
]
});
* 참조
HTML5 히스토리 모드 | Vue Router
HTML5 히스토리 모드 vue-router의 기본 모드는 hash mode 입니다. URL 해시를 사용하여 전체 URL을 시뮬레이트하므로 URL이 변경될 때 페이지가 다시 로드 되지 않습니다. 해시를 제거하기 위해 라우터의
router.vuejs.org