詳解vue-cli與webpack結(jié)合如何處理靜態(tài)資源
處理靜態(tài)資源
你也許會(huì)注意到vue-cli與webpack結(jié)合的項(xiàng)目中,我們通常會(huì)有兩個(gè)靜態(tài)資源的路徑:src/assets和static/,他們兩者的區(qū)別是什么呢?
打包的資源
為了回答這個(gè)問(wèn)題,我們首先要明白Webpack是如何處理靜態(tài)資源的。在*.vue組件里,所有的templates和CSS模塊都被vue-html-loader和css-loader解析來(lái)查找路徑URL。
舉個(gè)例子,在<img src"./logo.png">和背景background: url(./logo.png),”./logo.png”是一個(gè)相對(duì)路徑,會(huì)被Webpack當(dāng)做一個(gè)依賴(lài)加載。
但是因?yàn)閘ogo.png并不是JavaScript,所以如果被當(dāng)成一個(gè)依賴(lài)的花,我們需要通過(guò)url-loader和file-loader來(lái)解析它。這個(gè)模板已經(jīng)為你配置了相應(yīng)的loader,所以你通常不用擔(dān)心相對(duì)路徑的部署問(wèn)題。
即使這些資源有可能在構(gòu)建過(guò)程中被內(nèi)聯(lián)/拷貝/重命名,他們也是源碼重要組成部分。這就是為什么我們建議單獨(dú)在/src文件夾里放置靜態(tài)資源,如同其他的資源文件夾。
事實(shí)上,你都不必把他們?nèi)旁?src/assets,你可以根據(jù)模塊/組件來(lái)組織利用他們。比如說(shuō),你可以把任一組件放到他們自己的目錄,并在該目錄下存放靜態(tài)資源。
資源引入規(guī)則
相對(duì)路徑,比如 ./assets/logo.png會(huì)被解析成模塊依賴(lài)。它們會(huì)被一個(gè)基于你Webpack輸出配置的自動(dòng)生成URL替代。
沒(méi)有前綴的路徑,比如assets/logo.png,同相對(duì)路徑,轉(zhuǎn)義成./assets/logo.png
有~前綴的路徑。 ~被認(rèn)為是一個(gè)模塊請(qǐng)求,同require('some-module/image.png')。根路徑,比如/assets/log.png
在JavaScript得到資源路徑
computed: { background () { return require('./bgs/' + this.id + '.jpg') } }
這個(gè)資源路徑同樣會(huì)被file-loader處理然后返回處理后的路徑。而且Webpack會(huì)一次性加載該bgs目錄下的所有圖片。
“真實(shí)的”靜態(tài)資源
與此相對(duì)的,static/中的文件全都不會(huì)被Webpack處理。它們將被直接拷貝到目標(biāo)文件夾,引用這些文件需要使用絕對(duì)路徑。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Webpack常見(jiàn)靜態(tài)資源處理-模塊加載器(Loaders)+ExtractTextPlugin插件
- vue-cli與webpack處理靜態(tài)資源的方法及webpack打包的坑
- vue填坑之webpack run build 靜態(tài)資源找不到的解決方法
- 淺談webpack4 圖片處理匯總
- webpack 靜態(tài)資源集中輸出的方法示例
- 淺談 Webpack 如何處理圖片(開(kāi)發(fā)、打包、優(yōu)化)
- 在Webpack中用url-loader處理圖片和字體的問(wèn)題
- webpack實(shí)現(xiàn)靜態(tài)資源緩存的方法
- vue項(xiàng)目之webpack打包靜態(tài)資源路徑不準(zhǔn)確的問(wèn)題
- webpack5處理圖片、圖標(biāo)字體、多媒體等靜態(tài)資源文件
相關(guān)文章
vue cli3 實(shí)現(xiàn)分環(huán)境打包的步驟
這篇文章主要介紹了vue cli3 實(shí)現(xiàn)分環(huán)境打包的步驟,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03vue element-ui el-tooltip組件失效問(wèn)題及解決
這篇文章主要介紹了vue element-ui el-tooltip組件失效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10Vue監(jiān)聽(tīng)滾動(dòng)實(shí)現(xiàn)錨點(diǎn)定位(雙向)示例
今天小編大家分享一篇Vue監(jiān)聽(tīng)滾動(dòng)實(shí)現(xiàn)錨點(diǎn)定位(雙向)示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11vue+el-element中根據(jù)文件名動(dòng)態(tài)創(chuàng)建dialog的方法實(shí)踐
本文主要介紹了vue+el-element中根據(jù)文件名動(dòng)態(tài)創(chuàng)建dialog的方法實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12Vue3+El-Plus實(shí)現(xiàn)表格行拖拽功能完整代碼
在vue3+elementPlus網(wǎng)站開(kāi)發(fā)中,詳細(xì)完成el-table表格的鼠標(biāo)拖拽/拖曳/拖動(dòng)排序,下面這篇文章主要給大家介紹了關(guān)于Vue3+El-Plus實(shí)現(xiàn)表格行拖拽功能的相關(guān)資料,需要的朋友可以參考下2024-05-05Vue實(shí)現(xiàn)前端頁(yè)面緩存的過(guò)程
這篇文章主要介紹了Vue實(shí)現(xiàn)前端頁(yè)面緩存的過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07基于 Vue 實(shí)現(xiàn)一個(gè)酷炫的 menu插件
本文給大家介紹基于 Vue 實(shí)現(xiàn)一個(gè)酷炫的 menu插件,此篇教程需要大家具備一定的css和vue基礎(chǔ)知識(shí),本文分步驟給大家介紹的非常詳細(xì),需要的朋友參考下吧2017-11-11