vue打包後出現空白頁的原因及解決方式詳解
路由模式 history
新建項目什麼都不動,路由模式:history
, 直接npm run build
打包
打包之後,直接打開dist文件裡面的ndex.html
可以看到頁面是空白的,控制臺是這樣的。
再看看網頁源碼, 對比dist
文件夾結構可以看到資源路徑的引入是錯誤的,應該用'./'
而不是'/'
那怎麼修改打包之後的路徑呢?查看vue-cli
官網配置參考中的publicPath
我們隻需要在和package.json
同級的地方新增一個vue.config.js
文件,將路徑修改為相對路徑'./'
// vue.config.js module.exports = { publicPath: './', }
再次打包, 頁面不是空白瞭,但還有很多東西沒顯示完,正常的頁面是這個樣子
打包之後是這樣子
點擊About
進行路由跳轉是這樣子
路由模式 hash
改一下路由模式,找到router/index.js
文件, 將history
修改為hash
, 再進行打包
// router/index.js const router = new VueRouter({ mode: 'hash', base: process.env.BASE_URL, routes })
頁面顯示和路由跳轉就都可以瞭
總結
1. 修改路徑
// vue.config.js module.exports = { publicPath: './', }
2. 更改路由模式
// router/index.js const router = new VueRouter({ mode: 'hash', base: process.env.BASE_URL, routes })
路由模式拓展
路由的hash和history模式的區別
- 首先hash模式url帶#號,history不帶#號
- hash模式前端路由修改的是hash值(#及以後),對後端沒影響,因此改變hash也不會重新加載頁面,比如修改為瞭不存在的#123頁面,頁面不會跳轉;
history模型剛好相反,沒有對應的頁面就會出現404
打包路由選擇
- 前端測試用 hash 模式
- 項目上線不想要url帶#號的話使用history模式,不過使用history模式需要與後端溝通,需後端配置
到此這篇關於vue打包後出現空白頁的原因及解決方式的文章就介紹到這瞭,更多相關vue打包後空白頁解決內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- vue-router如何實現history模式配置
- Vue實現hash模式網址方式(就是那種帶#的網址、井號url)
- Vue項目打包部署的實戰過程記錄
- vue-route路由管理的安裝與配置方法
- Vue項目中對index.html中BASE_URL的配置方式