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

Vite靜態(tài)資源處理——?jiǎng)討B(tài)引入圖片

這篇具有很好參考價(jià)值的文章主要介紹了Vite靜態(tài)資源處理——?jiǎng)討B(tài)引入圖片。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

單一資源處理

將資源引入為 URL

服務(wù)時(shí)引入一個(gè)靜態(tài)資源會(huì)返回解析后的公共路徑:

// 引用
import CaseBG from '@/assets/images/20230313144252.png'

導(dǎo)入既可以使用絕對(duì)公共路徑(基于開(kāi)發(fā)期間的項(xiàng)目根路徑),也可以使用相對(duì)路徑。

// 使用
<img alt='' :src=CaseBG />

vite 生產(chǎn)構(gòu)建后文件名會(huì)哈希,如圖:

vite 動(dòng)態(tài)加載圖片,Vite,javascript,vue.js,前端,vite

多個(gè)資源處理(動(dòng)態(tài))

new URL(url, import.meta.url)

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

// 引用
const CaseBG = new URL('@/assets/images/20230313144252.png', import.meta.url).href
// 使用
<img alt='' :src=CaseBG />

如果想要?jiǎng)討B(tài)引入圖片資源,可以通過(guò)字符串模板封裝一個(gè)方法:

/**
 * 動(dòng)態(tài)引入圖片資源
 * @param {String} name 圖片名稱/路徑
 * @returns 圖片url
 */
export const getImageUrl = (name) => {
  return new URL(`../assets/images/${name}`, import.meta.url).href
}

需要注意的是:

  • 如果 name 想要傳路徑的話,比如圖片資源在 images 下不同的文件夾中,即 home/20230313144252.png,那這個(gè)路徑就需要傳文件后綴。
<img
  alt=""
  :src="getImageUrl('home/20230314145534.png')"
  style="width: 214px; height: 46px;"
/>

寫成這樣的格式才能正確顯示。

  • 如果 name 只是傳文件名的話,就可以把后綴直接寫在封裝的方法中:
export const getImage = (name) => (
  new URL(`../assets/images/${name}.png`, import.meta.url).href
)
<img
  alt=""
  :src="getImage('20230313094342')"
  style="width: 214px; height: 46px;"
/>

這樣的話,就可以省略文件后綴了。

需要注意的是:

在生產(chǎn)構(gòu)建時(shí),Vite 才會(huì)進(jìn)行必要的轉(zhuǎn)換保證 URL 在打包和資源哈希后仍指向正確的地址。然而,這個(gè) URL 字符串必須是靜態(tài)的,這樣才好分析。否則代碼將被原樣保留、因而在 build.target 不支持 import.meta.url 時(shí)會(huì)導(dǎo)致運(yùn)行時(shí)錯(cuò)誤。

兩個(gè)知識(shí)點(diǎn):

new URL()

創(chuàng)建并返回一個(gè) URL 對(duì)象,該 URL 對(duì)象引用使用絕對(duì) URL 字符串,相對(duì) URL 字符串和基本 URL 字符串指定的 URL。

import.meta

import.meta 是一個(gè)給 JavaScript 模塊暴露特定上下文的元數(shù)據(jù)屬性的對(duì)象。它包含了這個(gè)模塊的信息,比如說(shuō)這個(gè)模塊的 URL。

Public 目錄

另外說(shuō)一下一些特殊情況,可以解決路徑問(wèn)題。
如果有下列這些資源:

  • 不會(huì)被源碼引用(例如 robots.txt
  • 必須保持原有文件名(沒(méi)有經(jīng)過(guò) hash
  • 等等一些壓根不想引入該資源,只是想得到其 URL。

那么就可以將該資源放在指定的 public 目錄中,它應(yīng)位于項(xiàng)目根目錄。該目錄中的資源在開(kāi)發(fā)時(shí)能直接通過(guò) / 根路徑訪問(wèn)到,并且打包時(shí)會(huì)被完整復(fù)制到目標(biāo)目錄的根目錄下。

目錄默認(rèn)是 <root>/public,但可以通過(guò) publicDir 選項(xiàng) 來(lái)配置。

請(qǐng)注意:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-691912.html

  • 引入 public 中的資源永遠(yuǎn)應(yīng)該使用根絕對(duì)路徑 —— 舉個(gè)例子,public/icon.png 應(yīng)該在源碼中被引用為 /icon.png。
  • public 中的資源不應(yīng)該被 JavaScript 文件引用。

到了這里,關(guān)于Vite靜態(tài)資源處理——?jiǎng)討B(tài)引入圖片的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vite搭建的項(xiàng)目動(dòng)態(tài)引入本地圖片

    由于vite里面沒(méi)有require(), 所以需要封裝個(gè)工具。

    2024年02月11日
    瀏覽(27)
  • 如何在Vite項(xiàng)目中處理靜態(tài)資源

    如何在Vite項(xiàng)目中處理靜態(tài)資源

    在前端工程化建設(shè)中,靜態(tài)資源是必須處理的一個(gè)問(wèn)題,前端的靜態(tài)資源通常包括圖片、JSON、Worker 文件、Web Assembly 文件等等。由于靜態(tài)資源本身并不是一個(gè)標(biāo)準(zhǔn)意義上的模塊,因此在處理靜態(tài)資源和代碼時(shí)是需要區(qū)別對(duì)待的。 對(duì)于資源加載問(wèn)題,Vite需要處理的就是如何將

    2023年04月26日
    瀏覽(20)
  • 解決項(xiàng)目遷移vite引入圖片資源報(bào)require is not defined的問(wèn)題

    解決項(xiàng)目遷移vite引入圖片資源報(bào)require is not defined的問(wèn)題

    Vite是一種輕量快速的前端構(gòu)建工具,能夠顯著提升前端開(kāi)發(fā)體驗(yàn),而且官方已經(jīng)發(fā)布v4版本,相對(duì)比較穩(wěn)定。在把VueCli搭建的項(xiàng)目遷移到Vite的過(guò)程中遇到了個(gè)問(wèn)題,下面分享一下問(wèn)題及解決辦法。 在 script 標(biāo)簽里面引入的圖片資源沒(méi)生效,然后一看控制臺(tái),報(bào)錯(cuò)顯示 require

    2024年02月03日
    瀏覽(26)
  • Vue3的vite中圖片的動(dòng)態(tài)加載

    vite官網(wǎng)的靜態(tài)資源引入?yún)⒖嫉刂?new URL() + import.meta.url 注意:這里只能通過(guò) …/…/ 這種方式去獲取路徑,無(wú)法通過(guò)@/assets

    2024年02月16日
    瀏覽(32)
  • vite.config.ts 自動(dòng)導(dǎo)入靜態(tài)資源 或 cdn資源
  • VUE3+vite項(xiàng)目中動(dòng)態(tài)引入組件和異步組件

    1. 把項(xiàng)目中所有vue文件注冊(cè)成異步組件。 2. 獲取組件 在setup函數(shù)獲取組件 3. 參考如下 Glob 導(dǎo)入 Vite 支持使用特殊的 import.meta.glob 函數(shù)從文件系統(tǒng)導(dǎo)入多個(gè)模塊: 以上將會(huì)被轉(zhuǎn)譯為下面的樣子: 你可以遍歷 modules 對(duì)象的 key 值來(lái)訪問(wèn)相應(yīng)的模塊: 匹配到的文件默認(rèn)是懶加載的

    2024年02月10日
    瀏覽(34)
  • 解決vite構(gòu)建庫(kù)模式和 es 格式中css樣式加載問(wèn)題(也可單獨(dú)在組件下引入)

    注:如果同一個(gè)項(xiàng)目使用多個(gè)組件,引入的CSS樣式名相同會(huì)導(dǎo)致CSS樣式來(lái)回覆蓋導(dǎo)致錯(cuò)誤 3. 安裝 4. 用法

    2024年02月03日
    瀏覽(21)
  • 《Vite 基礎(chǔ)知識(shí)》使用 Glob 動(dòng)態(tài)加載 .vue 文件

    開(kāi)發(fā)基于 Vite + Vue3 的組件庫(kù),多個(gè) .vue 文件需要?jiǎng)討B(tài)加載! 注意 import.meta.globEager 已經(jīng)棄用,請(qǐng)使用 import.meta.glob 來(lái)代替! 代碼第 1 行,注意使用兩個(gè) **,匹配當(dāng)前目錄及其嵌套的全部子目錄下的文件; 代碼第 4 行,異步使用 Promise 加載,所以要在 then 中獲取真正的組件對(duì)

    2024年01月18日
    瀏覽(19)
  • vite圖片處理

    主要問(wèn)題點(diǎn):解決打包速度,盡量用框架自帶的方法,不要想著以前的。就像人總會(huì)變。 寫一個(gè)插件 export default function requirePlugin() { ? ? return { ? ? ? // 插件名稱 ? ? ? name: \\\"vite-plugin-vue-requireToUrlPlugin\\\", ? ? ? // 默認(rèn)值post:在 Vite 核心插件之后調(diào)用該插件,pre:在 Vite 核心

    2024年02月12日
    瀏覽(14)
  • flutter項(xiàng)目引入本地靜態(tài)圖片資源并展示

    flutter項(xiàng)目引入本地靜態(tài)圖片資源并展示

    想要在flutter中引入靜態(tài)資源,需要配置pubspec.yaml,將本地的靜態(tài)資源添加到assets下面: 然后在flutter引入這些靜態(tài)資源:? 就可以在app中看到這個(gè)圖片了:? 也可以使用網(wǎng)絡(luò)圖片:

    2024年02月05日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包