vue打包后出現(xiàn)空白頁(yè)的原因及解決方式詳解
路由模式 history
新建項(xiàng)目什么都不動(dòng),路由模式:history
, 直接npm run build
打包
打包之后,直接打開(kāi)dist文件里面的ndex.html
可以看到頁(yè)面是空白的,控制臺(tái)是這樣的。
再看看網(wǎng)頁(yè)源碼, 對(duì)比dist
文件夾結(jié)構(gòu)可以看到資源路徑的引入是錯(cuò)誤的,應(yīng)該用'./'
而不是'/'
那怎么修改打包之后的路徑呢?查看vue-cli
官網(wǎng)配置參考中的publicPath
我們只需要在和package.json
同級(jí)的地方新增一個(gè)vue.config.js
文件,將路徑修改為相對(duì)路徑'./'
// vue.config.js module.exports = { publicPath: './', }
再次打包, 頁(yè)面不是空白了,但還有很多東西沒(méi)顯示完,正常的頁(yè)面是這個(gè)樣子
打包之后是這樣子
點(diǎn)擊About
進(jìn)行路由跳轉(zhuǎn)是這樣子
路由模式 hash
改一下路由模式,找到router/index.js
文件, 將history
修改為hash
, 再進(jìn)行打包
// router/index.js const router = new VueRouter({ mode: 'hash', base: process.env.BASE_URL, routes })
頁(yè)面顯示和路由跳轉(zhuǎn)就都可以了
總結(jié)
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模式的區(qū)別
- 首先hash模式url帶#號(hào),history不帶#號(hào)
- hash模式前端路由修改的是hash值(#及以后),對(duì)后端沒(méi)影響,因此改變hash也不會(huì)重新加載頁(yè)面,比如修改為了不存在的#123頁(yè)面,頁(yè)面不會(huì)跳轉(zhuǎn);
history模型剛好相反,沒(méi)有對(duì)應(yīng)的頁(yè)面就會(huì)出現(xiàn)404
打包路由選擇
- 前端測(cè)試用 hash 模式
- 項(xiàng)目上線不想要url帶#號(hào)的話使用history模式,不過(guò)使用history模式需要與后端溝通,需后端配置
到此這篇關(guān)于vue打包后出現(xiàn)空白頁(yè)的原因及解決方式的文章就介紹到這了,更多相關(guān)vue打包后空白頁(yè)解決內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue源碼解析之?dāng)?shù)組變異的實(shí)現(xiàn)
這篇文章主要介紹了Vue源碼解析之?dāng)?shù)組變異的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12vue3使用vue3-print-nb實(shí)現(xiàn)區(qū)域打印功能
這篇文章主要給大家介紹了關(guān)于vue3使用vue3-print-nb實(shí)現(xiàn)區(qū)域打印功能的相關(guān)資料,在日常操作中,相信很多人在Vue怎么用插件實(shí)現(xiàn)打印功能問(wèn)題上存在疑惑,需要的朋友可以參考下2023-07-07Vue ECharts設(shè)置主題實(shí)現(xiàn)方法介紹
這篇文章主要介紹了Vue ECharts設(shè)置主題,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12詳解Vue前端生產(chǎn)環(huán)境發(fā)布配置實(shí)戰(zhàn)篇
這篇文章主要介紹了詳解Vue前端生產(chǎn)環(huán)境發(fā)布配置實(shí)戰(zhàn)篇,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05Vue淺析axios二次封裝與節(jié)流及防抖的實(shí)現(xiàn)
axios是基于promise的HTTP庫(kù),可以使用在瀏覽器和node.js中,它不是vue的第三方插件,vue-axios是axios集成到Vue.js的小包裝器,可以像插件一樣安裝使用:Vue.use(VueAxios,?axios),本文給大家介紹axios的二次封裝和節(jié)流與防抖2022-08-08