最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解vue靜態(tài)資源打包中的坑與解決方案

 更新時(shí)間:2018年02月05日 13:45:59   作者:Hipo  
本篇文章主要介紹了詳解vue靜態(tài)資源打包中的坑與解決方案,本文主要解決路徑問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

本文主要解決

①.vue-cli默認(rèn)配置打包后部署至特定路徑下靜態(tài)資源路徑錯(cuò)誤問(wèn)題;

②.靜態(tài)資源打包使用相對(duì)路徑后css文件引入大圖片路徑錯(cuò)誤問(wèn)題。

1、問(wèn)題

vue-cli 腳手架生成的默認(rèn)打包配置文件情況下運(yùn)行 npm run build 打包后,部署項(xiàng)目至特定路徑下:如:

//ip:port/public/springActivity/

此時(shí)訪問(wèn):

http://ip:port/public/springActivity/index.html

index.html 可以正常訪問(wèn),但是引用的js,css等文件服務(wù)器響應(yīng)均為404,查看引入的資源路徑如下:

http://ip:port/static/css/app.cea07642cd24c0d7a5c4b9b7afc7ff64.css
http://ip:port/static/js/app.815851e87b083afb82bf.js

2、分析

由上可以看出是資源打包路徑有誤,打包后的資源使用了絕對(duì)根目錄路徑,因此將項(xiàng)目部署到特定目錄下,其引入的資源路徑無(wú)法被正確解析。

3、解決

在打包時(shí)需要使用相對(duì)路徑來(lái)處理靜態(tài)資源,更改build中資源發(fā)布路徑配置(config/index.js, build對(duì)象):

將 assetsPublicPath: '/'  改為  assetsPublicPath: './',
再次打包,并將資源部署到特定路徑下,然后訪問(wèn):

此時(shí)index.html可以正常訪問(wèn),同時(shí)js和css資源也可以正常訪問(wèn),但是css中引入的assets目錄下的大圖片資源出錯(cuò)了(服務(wù)端404)

4. 再分析

查看引入的圖片資源路徑如下:

http://ip:port/public/springActivity/static/css/static/img/question_bg.61a2825.png

實(shí)際項(xiàng)目中資源路徑如下:

index.html
static/
 |--js/
  |--*.js
 |--css/
  |--*.css
 |--img/
  |--*.png

很明顯圖片引入路徑有誤。分析圖片引入路徑,發(fā)現(xiàn)路徑均多了"/static/css"兩層目錄,猜測(cè)是css目錄下的css文件引入圖片路徑為"/static/img/question_bg.61a2825.png" , 查看css文件,css中引入圖片路徑如下:

background:url(static/img/question_bg.61a2825.png)

5、在解決

css文件中路徑存在問(wèn)題,肯定又是打包哪個(gè)環(huán)節(jié)資源路徑?jīng)]有配置好,分析打包過(guò)程,css是在js中引入的或是寫(xiě)在vue文件中的,css文件首先被less,postcss等處理,處理后會(huì)被ExtractTextPlugin處理,ExtractTextPlugin將js中的css全部抽離至app.css文件中。

首先將options.extract設(shè)為false,關(guān)閉抽離css功能,再次打包并部署至特定目錄,訪問(wèn):http://ip:port/public/springActivity/index.html, 啪,頁(yè)面正常顯示,大公即將告成。

分析打包后的文件,發(fā)現(xiàn)沒(méi)有了css文件,發(fā)現(xiàn)css文件全部在app.js文件中;通過(guò)js將css注入 index.html文件中,因此css文件中引入的圖片資源路徑應(yīng)該是相對(duì)于index.html文件路徑的,即:"static/img/question_bg.61a2825.png",這與下面css文件中的圖片資源路徑一致,因此圖片能夠被正常訪問(wèn)。

background:url(static/img/question_bg.61a2825.png)
現(xiàn)在很確定知道問(wèn)題出在哪了,即:ExtractTextPlugin抽離css文件時(shí)沒(méi)有轉(zhuǎn)換資源引入路徑,導(dǎo)致app.css引入了相對(duì)app.css目錄為"static/img/ .png"的靜態(tài)資源,該路徑相對(duì)index.html即為:static/css/static/img/ .png。

因此使用ExtractTextPlugin插件時(shí)還需要配置靜態(tài)資源路徑參數(shù),通過(guò)查詢資料,得知可以通過(guò)添加publicPath:"../../"解決該問(wèn)題:

if (options.extract) {
 return ExtractTextPlugin.extract({
 use: loaders,
 fallback: 'vue-style-loader',
 publicPath:"../../"     //添加
 })
}

打包部署到特定目錄下后訪問(wèn)index.html文件,頁(yè)面一切正常,app.css文件正常引入,圖片資源也正常引入,查看app.css文件引入圖片資源方式如下:

background:url(../../static/img/question_bg.61a2825.png

publicPath配置后,css文件中引入的圖片文件路徑前添加了該路徑配置;

publicPath 屬性值為打包后的 app.css文件至index.html文件的相對(duì)路徑

圖片資源也可以直接放在vue-cli生成的static目錄下規(guī)避上述問(wèn)題,但是通過(guò)這種方式圖片名稱(chēng)中無(wú)法增加md5字符串,不利于版本控制

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何使用?vxe-table?將行數(shù)據(jù)標(biāo)記為刪除狀態(tài)

    如何使用?vxe-table?將行數(shù)據(jù)標(biāo)記為刪除狀態(tài)

    vxe-table支持將數(shù)據(jù)標(biāo)記為待刪除狀態(tài),通過(guò)調(diào)用setPendingRow方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • echarts.js 動(dòng)態(tài)生成多個(gè)圖表 使用vue封裝組件操作

    echarts.js 動(dòng)態(tài)生成多個(gè)圖表 使用vue封裝組件操作

    這篇文章主要介紹了echarts.js 動(dòng)態(tài)生成多個(gè)圖表 使用vue封裝組件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • Vue左滑組件slider使用詳解

    Vue左滑組件slider使用詳解

    這篇文章主要為大家詳細(xì)介紹了Vue左滑組件slider的使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • element中async-validator異步請(qǐng)求驗(yàn)證使用

    element中async-validator異步請(qǐng)求驗(yàn)證使用

    本文主要介紹了element中async-validator異步請(qǐng)求驗(yàn)證使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • vue3生成隨機(jī)密碼的示例代碼

    vue3生成隨機(jī)密碼的示例代碼

    本文主要介紹了vue3生成隨機(jī)密碼的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • vue中通過(guò)iframe方式加載本地的vue頁(yè)面的解決方法

    vue中通過(guò)iframe方式加載本地的vue頁(yè)面的解決方法

    這篇文章主要給大家介紹了在vue中如何通過(guò)iframe方式加載本地的vue頁(yè)面的解決方法,文中有詳細(xì)的解決流程,需要的朋友可以參考下
    2023-06-06
  • Vue項(xiàng)目配置、切換主題顏色詳細(xì)教程(mixin+scss方式,簡(jiǎn)單高效)

    Vue項(xiàng)目配置、切換主題顏色詳細(xì)教程(mixin+scss方式,簡(jiǎn)單高效)

    這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目配置、切換主題顏色(mixin+scss方式)的相關(guān)資料,根據(jù)預(yù)設(shè)的配色方案,在前端實(shí)現(xiàn)動(dòng)態(tài)切換系統(tǒng)主題顏色,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • vue定義在computed的變量無(wú)法更新問(wèn)題及解決

    vue定義在computed的變量無(wú)法更新問(wèn)題及解決

    這篇文章主要介紹了vue定義在computed的變量無(wú)法更新問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue-cli項(xiàng)目修改文件熱重載失效的解決方法

    vue-cli項(xiàng)目修改文件熱重載失效的解決方法

    今天小編就為大家分享一篇vue-cli項(xiàng)目修改文件熱重載失效的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 用vite搭建vue3應(yīng)用的實(shí)現(xiàn)方法

    用vite搭建vue3應(yīng)用的實(shí)現(xiàn)方法

    這篇文章主要介紹了用vite搭建vue3應(yīng)用的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評(píng)論

灵丘县| 富川| 南溪县| 望谟县| 咸丰县| 吉水县| 鱼台县| 桐梓县| 涞水县| 宜丰县| 巴东县| 安龙县| 乌恰县| 株洲县| 府谷县| 昌图县| 微山县| 绍兴市| 敦煌市| 鄂尔多斯市| 敦煌市| 大关县| 纳雍县| 衡南县| 新干县| 平山县| 津南区| 新乐市| 资源县| 双鸭山市| 浑源县| 剑川县| 武宁县| 安丘市| 福州市| 勃利县| 大化| 凤翔县| 忻城县| 昌平区| 乐陵市|