欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

本文主要解決

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

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

1、問題

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

//ip:port/public/springActivity/

此時訪問:

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

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

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

2、分析

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

3、解決

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

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

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

4. 再分析

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

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

實際項目中資源路徑如下:

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

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

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

5、在解決

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

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

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

  • Vue.js中el-table表格自定義列控制與拖拽

    Vue.js中el-table表格自定義列控制與拖拽

    本文主要介紹了Vue.js中el-table表格自定義列控制與拖拽,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • cordova+vue+webapp使用html5獲取地理位置的方法

    cordova+vue+webapp使用html5獲取地理位置的方法

    這篇文章主要介紹了
    2019-07-07
  • VueJs路由跳轉(zhuǎn)——vue-router的使用詳解

    VueJs路由跳轉(zhuǎn)——vue-router的使用詳解

    本篇文章主要介紹了VueJs路由跳轉(zhuǎn)——vue-router的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • vue.js 實現(xiàn)點(diǎn)擊展開收起動畫效果

    vue.js 實現(xiàn)點(diǎn)擊展開收起動畫效果

    這篇文章主要介紹了vue.js 實現(xiàn)點(diǎn)擊展開收起動畫效果,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • vite(vue3)配置內(nèi)網(wǎng)ip訪問的方法步驟

    vite(vue3)配置內(nèi)網(wǎng)ip訪問的方法步驟

    Vite是一個快速的構(gòu)建工具,Vue3是一個流行的JavaScript框架,下面這篇文章主要給大家介紹了關(guān)于vite(vue3)配置內(nèi)網(wǎng)ip訪問的方法步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Vue3中關(guān)于路由規(guī)則的props配置方式

    Vue3中關(guān)于路由規(guī)則的props配置方式

    這篇文章主要介紹了Vue3中關(guān)于路由規(guī)則的props配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vuex頁面刷新數(shù)據(jù)丟失問題的四種解決方式

    vuex頁面刷新數(shù)據(jù)丟失問題的四種解決方式

    vuex是大家使用vue時大多數(shù)都會選擇的,但是當(dāng)頁面刷新之后vuex數(shù)據(jù)會丟失,下面這篇文章主要給大家介紹了關(guān)于vuex頁面刷新數(shù)據(jù)丟失問題的四種解決方式,需要的朋友可以參考下
    2022-02-02
  • Vue3中watch監(jiān)聽的五種情況詳解

    Vue3中watch監(jiān)聽的五種情況詳解

    watch函數(shù)用于偵聽某個值的變化,當(dāng)該值發(fā)生改變后,觸發(fā)對應(yīng)的處理邏輯,本文將給大家介紹了Vue3中watch監(jiān)聽的五種情況,文中通過代碼示例講解的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2024-03-03
  • Vue中tinymce富文本功能配置詳解

    Vue中tinymce富文本功能配置詳解

    TinyMCE是一款易用、且功能強(qiáng)大的所見即所得的富文本編輯器,跟其他富文本編輯器相比,有著豐富的插件,支持多種語言,能夠滿足日常的業(yè)務(wù)需求并且免費(fèi),本文小編給大家詳細(xì)介紹了Vue中tinymce富文本功能配置,需要的朋友可以參考下
    2023-11-11
  • 淺談Vuex的狀態(tài)管理(全家桶)

    淺談Vuex的狀態(tài)管理(全家桶)

    本篇文章主要介紹了淺談Vuex狀態(tài)管理(全家桶),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11

最新評論