国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue中圖片不顯示問題 - vue中靜態(tài)資源加載

這篇具有很好參考價值的文章主要介紹了vue中圖片不顯示問題 - vue中靜態(tài)資源加載。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

vue中圖片不顯示問題

靜態(tài)資源

  • 在 JavaScript 被導入或在 template/CSS 中通過相對路徑被引用。這類引用會被 webpack 處理后再輸出到打包后的文件。
  • 放置在 public(static)目錄下或通過絕對路徑被引用。這類資源將會直接被拷貝到打包后的文件,而不會經(jīng)過 webpack 的處理。
    config.jsbuild.assetsPublicPath build.assetsSubDirectory中設置
// config/index.js
module.exports = {
  // ...
  build: {
    assetsPublicPath: '/',
    assetsSubDirectory: 'static'
  }
}

URL 轉(zhuǎn)換規(guī)則

  • 如果URL是一個絕對路徑如/panda.png,則該路徑會被保留
  • 如果URL以.開頭,會被理解為相對路徑,并基于目錄結(jié)構(gòu)進行解析。沒有前綴的URL, 如assets/logo.png 將會被看成相對URL,并且轉(zhuǎn)換成./assets/logo.png。例如,url(./image.png) 會被翻譯為 require('./image.png')
  • 如果URL以@開頭,也會作為一個模塊請求被解析。Vue CLI 默認會設置一個指向 /src 的別名 @。(僅作用于模版中)

webpack 靜態(tài)資源處理

*.vue組件中,所有的templatescss都會被vue-html-loadercss-loader解析,尋找資源的URL

在JavaScript里獲取資源路徑
為了能讓Webpack返回正確的資源路徑,使用require('./relative/path/to/file.jpg'),由file-loader進行解析,然后返回處理過的URL。

圖片不顯示問題

問題描述

直接傳地址是可以正常顯示的

<img src="./assets/tile.jpg" alt="">

vue中圖片不顯示問題 - vue中靜態(tài)資源加載,踩坑記錄,Vue/React,vue.js,前端,javascript

但很多需求不允許直接傳遞。比如父組件往子組件傳遞圖片地址等。然后發(fā)現(xiàn)使用變量傳遞字符串后圖片不顯示。

/* 錯誤寫法 */
// js
const imgSrc = './assets/tile.jpg'

//template
<img :src="imgSrc"></img>

vue中圖片不顯示問題 - vue中靜態(tài)資源加載,踩坑記錄,Vue/React,vue.js,前端,javascript
原因
根據(jù)結(jié)果來看,相對地址沒有被解析。在webpack中會將圖片來當做模塊來用,因為是動態(tài)加載的,所以url-loader將無法解析圖片地址(被webpack解析到的路徑都會被解析為/static/img/[filename].png)

解決辦法1:使用require引入

正確的引入方法
使用require引用后,由file-loader進行解析,然后返回處理過的URL。

const img_src = require('../../assets/images/panda.png');
console.log(img_src); // 打印 ./assets/images/panda-aad48f9a4cf0f953ccb4af0ad32bd3cc.png

<img :src="imgSrc"></img>

使用require的錯誤引入方法

<img :src="require(imgSrc)"></img>

這里的錯誤原因理解的是動態(tài)綁定src,img_src被理解為變量,而require沒有被理解為變量。src去讀取img_src變量的值,該變量的值就是一個字符串,所以最后顯示的是字符串沒有解析地址去獲取圖片。
vue中圖片不顯示問題 - vue中靜態(tài)資源加載,踩坑記錄,Vue/React,vue.js,前端,javascript

require is not defined

vue3+typeScript使用require方法引入圖片的時候會報錯require is not defined

vue中圖片不顯示問題 - vue中靜態(tài)資源加載,踩坑記錄,Vue/React,vue.js,前端,javascript
因為requirewebpack提供的一種加載能力,但是vue3項目時搭配vite的,所以這里應該用vite提供的靜態(tài)資源載入方法,

vite官網(wǎng)的靜態(tài)資源載入方法

import.meta.url 是一個 ESM 的原生功能,會暴露當前模塊的 URL。與原生的 URL 構(gòu)造器 組合使用,在一個 JavaScript 模塊中,通過相對路徑我們就能得到一個被完整解析的靜態(tài)資源 URL

// js
const img_src = new URL("./assets/tile.jpg", import.meta.url).href
//img_src: http://127.0.0.1:5173/src/assets/tile.jpg 
//import.meta.url: http://127.0.0.1:5173/src/App.vue?t=1706082462328
console.log(img_src,import.meta.url)


//template
<img :src="img_src" alt="">

解決辦法2:使用import引入

打印tile的結(jié)果是/src/assets/tile.jpg,import引入后地址由相對路徑變成了絕對路徑,webpack不會對絕對路徑進行處理。

require是在運行時加載,import是編譯時加載

// js
import tile from "./assets/tile.jpg";
console.log(tile)

//template
<img :src="tile" alt="">

vue中圖片不顯示問題 - vue中靜態(tài)資源加載,踩坑記錄,Vue/React,vue.js,前端,javascript

解決辦法3:將圖片放進公共文件夾static或public

1.將圖片放進公共文件夾static或public
2.然后使用絕對路徑引入文章來源地址http://www.zghlxwxcb.cn/news/detail-824511.html

到了這里,關(guān)于vue中圖片不顯示問題 - vue中靜態(tài)資源加載的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • Vue3 - vite 引入本地圖片方法,頁面引入本地靜態(tài)資源圖像詳細教程,解決 UI 前端組件庫的圖片屬性無法使用本地圖像問題(無論是本地開發(fā)還是打包部署,本地圖片的路徑正常可用)

    Vue3 - vite 引入本地圖片方法,頁面引入本地靜態(tài)資源圖像詳細教程,解決 UI 前端組件庫的圖片屬性無法使用本地圖像問題(無論是本地開發(fā)還是打包部署,本地圖片的路徑正常可用)

    在 webpack 中通常用 require() 來引入靜態(tài)圖片,但在 vite 中這種方法就不行了。 本文實現(xiàn)了 在 vue3+vite 項目開發(fā)中,實現(xiàn)引入本地圖片(靜態(tài)資源),并且 build 打包后依然正常運行, 支持普通 img 標簽使用,也支持 UI 組件庫的各種 “圖片屬性” 當參數(shù)進行使用。 如下圖所示

    2024年02月08日
    瀏覽(167)
  • Unity隊列加載圖片,解決大量同時加載資源卡頓問題與思路

    1、思路:加載圖片的請求都加到隊列中,然后一個加載完一個再去加載下一個,直到加載完。 2、問題: ? ? ? ? 問題是相對也存在的。當加載的數(shù)據(jù)還在隊列中,但是已經(jīng)跳轉(zhuǎn)到其它的場景,則會出現(xiàn)報錯的問題。 ? ? ? ? 每次跳轉(zhuǎn)場景的時候,需要把隊列中的數(shù)據(jù)情況

    2024年02月16日
    瀏覽(26)
  • VUE使用docxtemplater導出word(帶圖片) 踩坑 表格循環(huán)空格 ,canvas.toDataURL圖片失真模糊問題

    VUE使用docxtemplater導出word(帶圖片) 踩坑 表格循環(huán)空格 ,canvas.toDataURL圖片失真模糊問題

    參考:https://www.codetd.com/article/15219743 安裝 關(guān)鍵代碼JS部分 導出函數(shù) vue 中引入上述js文件和方法 模板內(nèi)容 自己準備一個docx文檔,然后里面標注好需替換的參數(shù) 列表循環(huán)-- {#list}{name}{/list} 單個參數(shù)–{} 圖片–{%imgUrl} 大概就這些,我也是從參考鏈接里看到的,至此基本能解決

    2024年02月15日
    瀏覽(29)
  • 【VUE】解決圖片視頻加載緩慢/首屏加載白屏的問題

    【VUE】解決圖片視頻加載緩慢/首屏加載白屏的問題

    ? 在 Vue3 項目中,有時候會出現(xiàn)圖片視頻加載緩慢、首屏加載白屏的問題 通常是由以下原因?qū)е碌模?圖片或視頻格式不當:如果圖片或視頻格式選擇不當,比如選擇了無損壓縮格式,可能會導致文件大小過大,從而影響加載速度。 頁面中同時加載了大量的圖片和視頻,導致

    2024年02月16日
    瀏覽(21)
  • Tomcat加載靜態(tài)資源--防止SpringMVC攔截

    最簡潔方式:使用API 在配置文件下寫配置類SpringMvcSupport,并且讓SpringMVC掃描到此文件夾@ComponentScan({\\\"com.itheima.controller\\\",\\\"com.itheima.config\\\"}) SpringMvcSupport配置類如下 步驟: 1、在config文件下寫SpringMvcConfig配置類 2、在SpringMvcConfig也就是SpringMVC核心配置類中掃描到此文件夾,那么此

    2024年02月10日
    瀏覽(22)
  • 【VUE】解決VU2項目圖片視頻加載緩慢/首屏加載白屏的問題

    【VUE】解決VU2項目圖片視頻加載緩慢/首屏加載白屏的問題

    前端項目中,有時候會出現(xiàn)圖片視頻加載緩慢、首屏加載白屏的問題 之前寫了一篇在VU3項目中的解決方案, 現(xiàn)在講一下在 Vue2?項目中的解決方法,方法思路都差不多,在代碼示例上會有一些小差別 通常是由以下原因?qū)е碌模?圖片或視頻格式不當 :如果圖片或視頻格式選擇

    2024年02月16日
    瀏覽(19)
  • 記錄--靜態(tài)網(wǎng)站 H5 跳小程序,以及踩坑

    記錄--靜態(tài)網(wǎng)站 H5 跳小程序,以及踩坑

    我司有 智慧功成家 APP和對應的小程序,現(xiàn)在已經(jīng)實現(xiàn)APP分享到微信,微信點擊分享鏈接直接進入小程序。 目前有一個問題就是我們APP在網(wǎng)警那邊還沒有完全審批下來,已經(jīng)搞了幾個月了,還不知道啥時能上線。微信對于這類分享是有限制的,可以分享1000次,后面不給分享了

    2024年02月05日
    瀏覽(19)
  • UE5 C++ 靜態(tài)加載資源和類

    UE5 C++ 靜態(tài)加載資源和類

    一.上篇文章創(chuàng)建組件并綁定之后 在Actor中加載初始化了組件,現(xiàn)在在組件中賦值。使用static ConstructorHelpers::FObjectFinderTTempName(TEXT(\\\"Copy Reference\\\"));再用TempName.Object 里面的資源都來自StarterContent ? 效果如下: 二.靜態(tài)加載類 1.在Actor中再聲明一個AActor類? 2.在靜態(tài)加載類時使用

    2024年02月21日
    瀏覽(29)
  • Electron-builder打包vue項目后,背景圖片不加載的問題

    Electron-builder打包vue項目后,背景圖片不加載的問題

    打包后的項目啟動之后,背景圖片沒有成功加載,只有一片空白。此時打開調(diào)試工具可以看到,electron自動把圖片路徑加上了/img/ ?我們這時打開打包后的dist_electron文件夾,打開bundledimg目錄, ?這就是上面報錯的路徑。 對于背景圖片,不要使用如下 background:url(\\\'..\\\') 的形式,這樣寫

    2024年02月09日
    瀏覽(50)
  • Django 加載靜態(tài)資源及<!DOCTYPE html>標紅解決辦法

    Django 加載靜態(tài)資源及<!DOCTYPE html>標紅解決辦法

    1.文件夾位置: 用于開發(fā)者存放HTML頁面。 本文件夾位置建立在app01文件夾目錄下 -- 新建templates文件夾 -- 并在文件夾下創(chuàng)建html文件。 該文件的文件名與上述鏈接指向的html文件名稱相同。 2.要點: 優(yōu)先去項目的根目錄的templates中尋找(這個需要提前配置),不配置則無效。

    2023年04月08日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包