VueJs打包之后遇到的坑及解決
最近在用webpack+vue寫項(xiàng)目,經(jīng)過幾天的熬夜加班改BUG,終于把基本的框架給寫完了,后面只要加一些小功能就可以了,太好吧!先來npm run build 打包出來看看吧!
打包中...,我們用本地服務(wù)器打開看一下。
額,不看不知道,一看嚇一跳,坑咋這么多呢!但是作為一名積極向上的IT從業(yè)者,填坑吧。
打包之后沒有被渲染出來
怎么回事,剛打開就告訴我啥也沒有,這是要搞事情的前奏啊!
我們看一下錯(cuò)誤信息,告訴我路徑有問題,默默的看一下自己的地址欄和自己的文件所在目錄,原來是我的打包文件沒有放到根目錄下,這個(gè)時(shí)候我們可以把我們的兩個(gè)文件放到根目錄下,但是作為一名有個(gè)性的IT人士,當(dāng)然要看有沒有其他方法。
從上面的路徑中隱隱約約有點(diǎn)預(yù)感,static是直接相對于根目錄,說明這有可能打包的時(shí)候,有可能設(shè)置了絕對路徑,如果我改成相對路徑,那不就可以了嗎。
我們?nèi)タ匆幌马?xiàng)目文件下的config>index.js找到里面的build下的assetsPublicPath:'/',把它改成assetsPublicPath:'./',加個(gè)小點(diǎn)表示相對路徑,不加表示絕對路徑。npm run build運(yùn)行。成功。
路由(router)mode:'history',導(dǎo)致頁面不能渲染問題
地址欄的那個(gè)#怎么那么讓我不舒服呢!對于有輕度強(qiáng)迫癥的我來說,這是不能忍不了的。
我們在項(xiàng)目打包前,開發(fā)項(xiàng)目時(shí)(npm start),在vueRouter里設(shè)置mode:"history".可以去掉#號。
這里強(qiáng)行解釋一番:
路由(router)默認(rèn) hash 模式,使用 URL 的 hash 來模擬一個(gè)完整的 URL,于是當(dāng) URL 改變時(shí),頁面不會重新加載,因?yàn)閷τ谡5捻撁鎭碚f,更換URl一定是會導(dǎo)致頁面的更換的, 而只有更換URL中的查詢字符串和hash值的時(shí)候才不會重新加載頁面。
路由(router)的history模式,這種模式充分利用了history.pushState API來完成URL的跳轉(zhuǎn)而不需要重新加載頁面。沒有#號。
npm run build打包中....
什么鬼,為什么我的路由(router)部分沒有被渲染出來,這就是history的坑了
- 解決方法一,會到以前的hash模式
- 解決方法二,設(shè)置routes里的路由name
這是因?yàn)槁酚桑╮outer)無法找到路徑中的組件,所以也就無法渲染了。
只需要修改 src > router > index.js,在每個(gè)path后加上組件名稱就行了,這樣就可以了。
這里有個(gè)小問題
為了我們的時(shí)間考慮,還是放到根目錄吧!
首頁沒有問題了,逐個(gè)鏈接測試一下。
這是什么鬼,路徑和其他圖片路徑一樣,圖片也存在啊,為啥你就是這么傲嬌,就是報(bào)錯(cuò)。來看一下控制臺。
結(jié)合之前的./原來是相對路徑問題,是我的開發(fā)文件assets下多個(gè)圖片文件夾。
這個(gè)時(shí)候?yàn)榱碎_發(fā)項(xiàng)目的可讀性和維護(hù)性。只能默默的把前面改的相對路徑'./'改回絕對路徑'/'了。這就尷尬了,額額額,大家就當(dāng)沒看到哈!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue-drag-chart 拖動/縮放圖表組件的實(shí)例代碼
這篇文章主要介紹了vue-drag-chart 拖動/縮放的圖表組件的實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04vue登錄注冊及token驗(yàn)證實(shí)現(xiàn)代碼
在vue單頁中,我們可以通過監(jiān)控route對象,從中匹配信息去決定是否驗(yàn)證token,然后定義后續(xù)行為。下面通過實(shí)例代碼給大家分享vue登錄注冊及token驗(yàn)證功能,需要的朋友參考下吧2017-12-12Vue實(shí)現(xiàn)點(diǎn)擊箭頭上下移動效果
這篇文章主要介紹了Vue實(shí)現(xiàn)點(diǎn)擊箭頭上下移動效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06iview 權(quán)限管理的實(shí)現(xiàn)
本文主要介紹了iview 權(quán)限管理,iview-admin2.0自帶權(quán)限管理??梢酝ㄟ^設(shè)置路由的meta對象的參數(shù)access來分配權(quán)限。感興趣的可以了解一下2021-07-07詳解vue-cli開發(fā)環(huán)境跨域問題解決方案
本篇文章主要介紹了vue-cli開發(fā)環(huán)境跨域問題解決方案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-06-06