webpack+vue中使用別名路徑引用靜態(tài)圖片地址
webpack 的別名好處大家也都了解, 但是 vue 的模板中, 對(duì)圖片地址使用別名時(shí)總出現(xiàn)問(wèn)題, 很久時(shí)間的時(shí)間都沒(méi)找到解決辦法, 一度認(rèn)為是 webpack 的原因...
alias: {
'src': path.resolve(__dirname, '../src'),
'assets': path.resolve(__dirname, '../src/assets'),
'components': path.resolve(__dirname, '../src/components')
}
<template>
<img src="assets/images/logo.jpg" />
</template>
<script>
import 'assets/css/style.css'
</script>
<style>
.logo {
background: url(asset/images/bg.jpg)
}
</style>
上面的代碼, 你會(huì)發(fā)現(xiàn)只有引入style.css是成功的, 圖片地址和背景圖片地址都會(huì)解析失敗...
經(jīng)過(guò)各種搜索找原因(這時(shí)候, 你會(huì)發(fā)現(xiàn)百度搜索這些技術(shù)型的內(nèi)容, 真是垃圾中的戰(zhàn)斗機(jī)), 最終還是找到原因了...
vue-html-loader and css-loader translates non-root URLs to relative paths. In order to treat it like a module path, prefix it with ~
就是要在別名前面加一個(gè)~
最終代碼寫(xiě)成:
alias: {
'src': path.resolve(__dirname, '../src'),
'assets': path.resolve(__dirname, '../src/assets'),
'components': path.resolve(__dirname, '../src/components')
}
<template>
<img src="~assets/images/logo.jpg" />
</template>
<script>
import 'assets/css/style.css'
</script>
<style>
.logo {
background: url(~asset/images/bg.jpg)
}
</style>
意思就是: 告訴加載器它是一個(gè)模塊,而不是相對(duì)路徑
注意: 只有在template中的靜態(tài)文件地址和style中的靜態(tài)文件地址需要加~, 在script里的, 別名定義成什么就寫(xiě)什么.
到此, 糾結(jié)了幾個(gè)月時(shí)間的問(wèn)題, 終于解決了...
順便貼下自己使用的別名列表:
alias: {
'assets': path.resolve(__dirname, '../src/assets'),
'src': path.resolve(__dirname, '../src'),
'~api': path.resolve(__dirname, '../src/api'),
'~components': path.resolve(__dirname, '../src/components'),
'~pages': path.resolve(__dirname, '../src/pages'),
'~router': path.resolve(__dirname, '../src/router'),
'~store': path.resolve(__dirname, '../src/store'),
'~utils': path.resolve(__dirname, '../src/utils')
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue里的axios如何獲取本地json數(shù)據(jù)
這篇文章主要介紹了vue里的axios如何獲取本地json數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
vscode中vue代碼提示與補(bǔ)全沒(méi)反應(yīng)解決(vetur問(wèn)題)
這篇文章主要給大家介紹了關(guān)于vscode中vue代碼提示與補(bǔ)全沒(méi)反應(yīng)解決(vetur問(wèn)題)的相關(guān)資料,文中通過(guò)圖文將解決的方法介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03

