Vue應(yīng)用部署到服務(wù)器的正確方式
本文介紹了Vue應(yīng)用部署到服務(wù)器,分享給大家,希望此文章對(duì)各位有所幫助。
很多時(shí)候我們發(fā)現(xiàn)辛辛苦苦寫的VueJs應(yīng)用經(jīng)過(guò)打包后在自己本地搭建的服務(wù)器上測(cè)試沒(méi)有什么問(wèn)題,但真正放在服務(wù)器上后,會(huì)發(fā)現(xiàn)或多或少的問(wèn)題,比如:頁(yè)面出現(xiàn)空白現(xiàn)象,獲取資源路徑不對(duì)等,我相信以VueJs為技術(shù)棧來(lái)進(jìn)行前端開發(fā)的小伙伴或多或少都會(huì)遇到這樣的問(wèn)題,我也遇到過(guò),那現(xiàn)在我們就來(lái)一一解決這樣的問(wèn)題。
如何打包
- 基于Vue-Cli,通過(guò)npm run build來(lái)進(jìn)行打包的操作
如何部署
- 將打包出來(lái)的資源,基于Vue-Cli的一般是dist目錄下有static目錄和index.html文件,可以直接將這兩個(gè)文件扔到服務(wù)端
- 但有時(shí)候,我們會(huì)直接將dist文件扔到服務(wù)端
出現(xiàn)的問(wèn)題
- 打包到服務(wù)器后,出現(xiàn)資源引用路徑的問(wèn)題
- 打包到服務(wù)器后,出現(xiàn)空白頁(yè)的問(wèn)題
- 打包到服務(wù)器后,出現(xiàn)引入的css的type被攔截轉(zhuǎn)換為"text/plain"問(wèn)題
- 打包到服務(wù)器后,出現(xiàn)路由刷新404的問(wèn)題
出現(xiàn)資源引用路徑的解決方案
一般這個(gè)問(wèn)題是由于在webpack配置打包發(fā)布的目錄造成的。
情況一.如果是將static與index.html直接放在服務(wù)器根目錄,也就是說(shuō),當(dāng)前的應(yīng)用訪問(wèn)的網(wǎng)址如:http://www.xxx.com
解決辦法:
配置輸出的publiPath:"/"或者"./"
情況二.直接將打包后的dist文件放在了服務(wù)器的根目錄,也就是如果需要訪問(wèn)當(dāng)前的應(yīng)用,訪問(wèn)的網(wǎng)址
如:http://www.xxx.com/dist
解決辦法:
首先需要在創(chuàng)建路由實(shí)例中增加:
const router = new VueRouter({ mode: 'history', base: '/mobile/', scorllBehavior: () => ({ y: 0 }), routes });
然后再打包發(fā)布目錄:
publiPath:"/dist/"或者"http://www.xxx.com/dist/"
出現(xiàn)由于路由的history模式下刷新當(dāng)前路由出現(xiàn)404的問(wèn)題
今天做的應(yīng)用發(fā)布到服務(wù)器上,發(fā)現(xiàn)當(dāng)刷新當(dāng)前路由的時(shí)候,就會(huì)出現(xiàn)404的狀況,其實(shí)這是因?yàn)楫?dāng)刷新當(dāng)前頁(yè)面時(shí)候,所需要訪問(wèn)的資源在服務(wù)器上找不到,也就是說(shuō),我們?cè)赩ueJs開發(fā)應(yīng)用的過(guò)程中,設(shè)置路由的路徑不是真實(shí)存在的路徑,并且使用了history模式。
解決辦法
需要后端進(jìn)行配合,參考https://router.vuejs.org/en/essentials/history-mode.html
出現(xiàn)引入的css的type被攔截轉(zhuǎn)換為"text/plain"問(wèn)題
這是我開發(fā)過(guò)程中遇到的感覺(jué)很奇葩的問(wèn)題,我們都知道,一般基于Vue-Cli,通過(guò)WebPack打包后的資源不需要更改什么??墒俏野l(fā)現(xiàn),當(dāng)我把代碼進(jìn)行上傳后,輸入網(wǎng)址,看見(jiàn)的頁(yè)面把我嚇壞了,發(fā)現(xiàn)所有樣式不存在了,第一反應(yīng)就是認(rèn)為是自己在進(jìn)行打包配置過(guò)程中出現(xiàn)了什么問(wèn)題,然后通過(guò)fillder進(jìn)行調(diào)試,發(fā)現(xiàn)css文件是正確獲取到的
可以看到,這個(gè)css文件的type被攔截轉(zhuǎn)換為"text/plain",這時(shí)候,我又把相關(guān)的配置文件看了兩遍,后面發(fā)現(xiàn),真的是日了狗了,讓我哭一會(huì)兒。先上圖
我擦,原來(lái)是服務(wù)器端返回的類型居然是"text/plain"。這個(gè)問(wèn)題很好解決,把這圖直接給后端,是不是感覺(jué)被坑了/(ㄒoㄒ)/~~。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
VUE中鼠標(biāo)滾輪使div左右滾動(dòng)的方法詳解
這篇文章主要給大家介紹了關(guān)于VUE中鼠標(biāo)滾輪使div左右滾動(dòng)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12vue中el-tree增加節(jié)點(diǎn)后如何重新刷新
這篇文章主要介紹了vue中el-tree增加節(jié)點(diǎn)后如何重新刷新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08在vue項(xiàng)目中,將juery設(shè)置為全局變量的方法
今天小編就為大家分享一篇在vue項(xiàng)目中,將juery設(shè)置為全局變量的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09vue的異步數(shù)據(jù)更新機(jī)制與$nextTick用法解讀
這篇文章主要介紹了vue的異步數(shù)據(jù)更新機(jī)制與$nextTick用法解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03vue中通過(guò)使用$attrs實(shí)現(xiàn)組件之間的數(shù)據(jù)傳遞功能
組件之間傳遞數(shù)據(jù)的方式有很多種,之所以有這么多種方式,是為了滿足在不同場(chǎng)景不同條件下的使用。這篇文章主要介紹了vue中通過(guò)使用$attrs實(shí)現(xiàn)組件之間的數(shù)據(jù)傳遞,需要的朋友可以參考下2019-09-09vue2與vue3下如何訪問(wèn)使用public下的文件
這篇文章主要介紹了vue2與vue3下如何訪問(wèn)使用public下的文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05