vue動態加載圖片地址時報錯404的解決方案


問題復現:

一開始是這樣寫的:

<img :src="'../../assets/'+ item.picUrl +'.png'" />

結果圖片不顯示,控制台報錯404,圖片的加載地址解析為:http://test.hengdaomed.com/assets/doc_chen.png

 

解決方案:添加require()

<img :src="require('../../assets/'+ item.picUrl +'.png')" />

 

此時圖片就可以正常顯示,圖片的加載路徑經過webpack編譯后解析為:http://test.hengdaomed.com/pda-fe/static/img/doc_chen.3c27b5b.jpg

 

 

原因:

圖片資源是靜態文件,而靜態資源可以用兩種方式進行處理:

 

1. 在 JS 導入或在 template/CSS 中通過相對路徑被引入。這類引用會被webpack處理。

2. 放置在 static 目錄下或通過絕對路徑被引入(vue-cli3是 public 目錄)。這類資源將會直接被拷貝,而不會被 webpack 處理。
 
在vue的項目中,webpack使用的是vue-loader,在編譯過程中,所有的資源路徑例如 <img src="...">、background: url(...) 和 @import 會作為模塊依賴。
而動態加載圖片,圖片的地址無法被解析,因此最終沒有被打包到文件中,找不到該圖片。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM