vue-router의 해시 (#)를 지우고 싶습니다 (vue-router에서 History API 사용)
소개
VueCLI로 만든 앱을 실행할 때 vue-router로 설정된,
👆 이 해시(#) 그만두고 싶다
환경 정보:
※ VueCLI로 생성하고 그대로
절차
1. vue-router를 history 모드로 설정
vue-router는 초기 설정에서 URL 시뮬레이션 (표기)을 'hash'
모드로 설정하여 SPA를 실현합니다.
이것을 'history'
로 하면 해시 불필요, history API을 이용한 방법으로 URL 시뮬레이션을 실현할 수 있다.
모드의 변환은/src/router/index.js 에 기재된, vue-router 의 인스턴스 선언의 옵션에 일행 추기할 뿐. 간단.
/src/router/index.js const router = new Router({
+ mode: 'history', // enable history mode
routes: [
...
2. history 모드에 의한 부작용에 대처하기
history 모드를 사용하면 로컬에서 실행중인 webpack-dev-server에 Routing이 설정되어 있지 않으므로 주소 표시 줄에서 해시가없는 URL (ex : http://localhost:8080/home)에 직접 액세스 할 때 404 오류가 발생합니다. .
이를 위해 connect-history-api-fallback Middleware을 설치하고 해결하십시오.
2-1. 설치
npm install connect-history-api-fallback --save
2-2. 실행 명령 업데이트
npm-scripts의 dev 명령에 --history-api-fallback
추가
package.json {
...
"scripts": {
"dev": "webpack-dev-server --inline --history-api-fallback --progress --config build/webpack.dev.conf.js",
...
이상으로, npm run dev
하면 OK.
참고:
HTML5 History 모드 - vue-router 공식 문서
CLI: History API Fallback Option - GitHub
vue-router의 라우팅 URL에서 해시를 제거하면서 URL 직접 지정에서도 표시(Node, Express) - Qiita
Reference
이 문제에 관하여(vue-router의 해시 (#)를 지우고 싶습니다 (vue-router에서 History API 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hida/items/a0de65bed0c96fef62a1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const router = new Router({
+ mode: 'history', // enable history mode
routes: [
...
npm install connect-history-api-fallback --save
{
...
"scripts": {
"dev": "webpack-dev-server --inline --history-api-fallback --progress --config build/webpack.dev.conf.js",
...
Reference
이 문제에 관하여(vue-router의 해시 (#)를 지우고 싶습니다 (vue-router에서 History API 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hida/items/a0de65bed0c96fef62a1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)