之前項目遇到個情況,npm run build打包之后上傳到服務器后,index.html打開一片空白,資源都加載了,但是就是不顯示。
然后百度找了原因,修改了兩處地方
一、修改 assetsPublicPath
在config/index.js里面,有個 assetsPublicPath 屬性,源碼是‘/’,修改成‘./’,加個點
assetsPublicPath: '/',
二、路由模式將histroy改成hash模式,起初 mode:'history'
const router = new Router({
base: '/',
mode: 'hash',
routes: ROUTES
})
那么vue-router的hash模式和histroy模式有什么區別呢?
1、hash模式url帶#,histroy模式url不帶#
2、hash模式解決了通過http請求來切換頁面,改變路徑可以直接改變頁面,無需進行網絡請求,這叫前端路由,在hash模式下改變的是#中的信息,
history模式,可以前進和后退,但是不能刷新頁面,刷新之后就會報錯。如果后端沒有對路由地址進行相應的處理,那么就會報404的錯。
3、hash瀏覽器支持率比較好,支持低版本的瀏覽器,但history的方法只支持部分瀏覽器。