解決vue單頁(yè)面應(yīng)用打包后相對(duì)路徑、絕對(duì)路徑相關(guān)問(wèn)題
在項(xiàng)目開(kāi)發(fā)過(guò)程中,在部署過(guò)程中,用到了反向代理,這就要求前端代碼中不能使用絕對(duì)路徑。但是我們知道,一般情況下,通過(guò)webpack+vuecli默認(rèn)打包后的HTML、css、js等文件,使用的都是絕對(duì)路徑。下面可以舉幾個(gè)例子來(lái)看一下:
1、打包后的index.html文件
2、打包后的css文件
所以,如果在項(xiàng)目中需要使用相對(duì)路徑來(lái)獲取靜態(tài)的資源文件,需要怎么做呢?
1、修改webpack配置文件中的assetsPublicPath,修改為如下圖所示。
修改配置后,進(jìn)行打包發(fā)現(xiàn),打包后的index.html文件中,對(duì)css等文件的調(diào)用,變成相對(duì)路徑。
但是同時(shí)我們也會(huì)的發(fā)現(xiàn)這樣修改后,導(dǎo)致打包后的css文件中,圖片的路徑出現(xiàn)問(wèn)題,如下所示,圖片路徑出錯(cuò)導(dǎo)致圖片找不到。
所以仍需進(jìn)一步修改配置,使其變成如下路徑:
.iradio_flat-yellow{background-image:url(../../static/img/[email protected]);
2、 處理圖片路徑問(wèn)題
在webpack對(duì)ExtractTextPlugin插件配置的地方,加入如下代碼(具體值可能有變化,依據(jù)自身項(xiàng)目打包后文件路徑關(guān)系確定)
再次打包,發(fā)現(xiàn)問(wèn)題解決!
補(bǔ)充知識(shí):Vue-cli 2打包靜態(tài)文件夾static打包路徑報(bào)錯(cuò),開(kāi)發(fā)中使用絕對(duì)路徑,打包后部署到二級(jí)目錄,絕對(duì)路徑?jīng)]用改變。
在開(kāi)發(fā)中,如果使用絕對(duì)路徑在運(yùn)行測(cè)試環(huán)境是沒(méi)用任何問(wèn)題的
但是在打包后,路徑是回安裝原來(lái)寫(xiě)的路徑完全不改變的搬過(guò)去。
那么在部署在二級(jí)目錄下,讀取根目錄肯定會(huì)報(bào)錯(cuò)
解決辦法:在開(kāi)發(fā)中使用相對(duì)路徑
主要文件
config->index.js
build->assetsPublicPath: ’/二級(jí)目錄/’
最后的斜線很重要不能省略
static靜態(tài)文件
build->utils.jsexports.cssLoaders下的function generateLoaders if (options.extract) { return ExtractTextPlugin.extract({
里面添加publicPath: ’/二級(jí)目錄/’中間寫(xiě)二級(jí)路徑地址,后面的也是斜線很重要,不能省略
以上這篇解決vue單頁(yè)面應(yīng)用打包后相對(duì)路徑、絕對(duì)路徑相關(guān)問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. idea設(shè)置提示不區(qū)分大小寫(xiě)的方法2. HTTP協(xié)議常用的請(qǐng)求頭和響應(yīng)頭響應(yīng)詳解說(shuō)明(學(xué)習(xí))3. Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)4. CentOS郵件服務(wù)器搭建系列—— POP / IMAP 服務(wù)器的構(gòu)建( Dovecot )5. .NET SkiaSharp 生成二維碼驗(yàn)證碼及指定區(qū)域截取方法實(shí)現(xiàn)6. docker容器調(diào)用yum報(bào)錯(cuò)的解決辦法7. 原生JS實(shí)現(xiàn)記憶翻牌游戲8. css代碼優(yōu)化的12個(gè)技巧9. django創(chuàng)建css文件夾的具體方法10. ASP.NET MVC通過(guò)勾選checkbox更改select的內(nèi)容
