解決vue項(xiàng)目打包后提示圖片文件路徑錯(cuò)誤的問題
vue項(xiàng)目打包后在production模式下提示圖片 ‘404(not found),在dev環(huán)境下好好的,打包了就提示這個(gè)錯(cuò)誤。這是為什么呢,以前第一次使用vue-cli構(gòu)建項(xiàng)目的的時(shí)候只有兩個(gè)圖片文件,當(dāng)時(shí)部署后報(bào)錯(cuò)路徑問題, 當(dāng)時(shí)的想法就是簡(jiǎn)單粗暴,直接在build好的文件修改了文件路徑,再后來項(xiàng)目中遇到了一大堆靜態(tài)資源,修改路徑顯然是不行的,看了一下生成文件大概知道是文件目錄改變了,所以引用的路徑也要隨之改變,網(wǎng)上最簡(jiǎn)單的方法是修改 ‘config/index.js'文件中的 build模塊:
// emplate for index.html index: path.resolve(__dirname, '../dist/index.html'), // Paths assetsRoot: path.resolve(__dirname, '../dist'), assetsSubDirectory: 'static', assetsPublicPath: './',
將默認(rèn)的改為上文這樣子,靜態(tài)文件目錄改為static,靜態(tài)路徑改為‘./',即相對(duì)路徑。 ok了?
試了一下還是有404,當(dāng)時(shí)想到的就是難道只能在組件data中以“require”的方式一個(gè)一個(gè)的引入了嗎? 這個(gè)屬于js中以模塊引入方式確實(shí)可行,但是太繁瑣,想一下,使用這張圖的時(shí)候在html文檔結(jié)構(gòu)中以 “:bind”的方式將資源以code的方式加在html文檔中,不是說這樣不行,這樣也是可以實(shí)現(xiàn)想要的效果的,但是這樣做會(huì)導(dǎo)致不僅文檔結(jié)構(gòu)不清晰,冗余度高,維護(hù)起來麻煩,而且資源很多的時(shí)候這是一項(xiàng)龐大且繁瑣的工作,徒增加無(wú)用功。
這樣第三種方法應(yīng)用而生,就是修改‘build'目錄下的utils.js文件,將文件中的“generateLoaders”函數(shù)改為:
pluginfunction generateLoaders (loader, loaderOptions) {
const loaders = options.usePostCSS ?
[cssLoader, postcssLoader] : [cssLoader]
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}
// Extract CSS when that option is specified
// (which is the case during production build)
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader',
publicPath:'../../' //add
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
重點(diǎn)是if…else判斷中的那個(gè)”publicPath:'../../' ”
build一下,部署在服務(wù)端,ok可行,這樣就可以愉快的在style中使用圖片資源了。
總結(jié)
以上所述是小編給大家介紹的解決vue項(xiàng)目打包后提示圖片文件路徑錯(cuò)誤的問題,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
解決Vue數(shù)據(jù)更新了但頁(yè)面沒有更新的問題
在vue項(xiàng)目中,有些我們會(huì)遇到修改完數(shù)據(jù),但是視圖卻沒有更新的情況,具體的場(chǎng)景不一樣,解決問題的方法也不一樣,在網(wǎng)上看了很多文章,在此總結(jié)匯總一下,需要的朋友可以參考下2023-08-08
vue3+ts+element-plus實(shí)際開發(fā)之統(tǒng)一調(diào)用彈窗封裝的詳細(xì)過程
這篇文章主要介紹了vue3+ts+element-plus實(shí)際開發(fā)之統(tǒng)一調(diào)用彈窗封裝的詳細(xì)過程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03
淺談Vuex的this.$store.commit和在Vue項(xiàng)目中引用公共方法
這篇文章主要介紹了淺談Vuex的this.$store.commit和在Vue項(xiàng)目中引用公共方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
解決Vue3?echarts?v-show無(wú)法重新渲染的問題
這篇文章主要介紹了Vue3?echarts?v-show無(wú)法重新渲染的問題,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
Nuxt如何實(shí)現(xiàn)將服務(wù)測(cè)數(shù)據(jù)存儲(chǔ)到Vuex中
這篇文章主要介紹了Nuxt如何實(shí)現(xiàn)將服務(wù)測(cè)數(shù)據(jù)存儲(chǔ)到Vuex中的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10

