本篇講解前端專案的路由模式(以vue-router為例),以及history模式下的專案部署問題。
vue-router
的路由模式可以通過指定mode
屬性值控制,可選值:"hash" 、"history"、 "abstract" , 預設:"hash" (瀏覽器環境) , "abstract" (Node.js 環境)
const router = new VueRouter({
mode: 'history',
routes: [...]
})
通過 onhashchange 方法監聽hash的改變來實現
hashchange
事件通過 onpopstate 方法監聽history的改變來實現
history.pushState()
方法改變位址列 IE 10 以後才支援popstate
事件history.replaceState()
http://www.testurl.com/login
這樣的地址,會返回找不到該頁面index.html
,比如:http://www.testurl.com/login.html
history需要伺服器支援,我們使用node或nginx
http://localhost:8080/main/home
nginx處理方式
在nginx的html根目錄部署一個專案,然後新開一個資料夾,部署另一個專案,nginx.conf
location / {
root html;
index index.html index.htm;
try_files $uri $uri/ /index.html
}
try_files:
location /i/ {
alias /spool/w3/images/;
}
#