最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue項目字體文件打包后fonts文件夾消失的原因分析與解決方案

 更新時間:2026年06月02日 09:11:46   作者:Cheney9501  
在 Vue 項目中,將字體文件放在 src/assets/fonts 目錄下,打包后在瀏覽器中訪問發(fā)現路徑里不見了 fonts文件夾,這通常不是文件丟失,而是 Vue 的構建工具對靜態(tài)資源進行了自動化處理,本文給大家介紹了Vue項目字體文件打包后fonts文件夾消失的原因分析與解決方案

問題

在 Vue 項目中,將字體文件放在 src/assets/fonts 目錄下,打包后在瀏覽器中訪問發(fā)現路徑里“不見了 fonts”文件夾,這通常不是文件丟失,而是 Vue 的構建工具(Webpack 或 Vite)對靜態(tài)資源進行了自動化處理。

導致這種情況主要有以下兩個原因:

原因一:小體積字體被轉成了 Base64(最常見)

Vue 的構建工具默認會對 assets 目錄下的靜態(tài)資源進行優(yōu)化。如果你的字體文件體積較?。ɡ缧∮?4KB 或 8KB,具體取決于配置),構建工具會直接將其轉換成 Base64 編碼的字符串,并內嵌到打包后的 CSS 文件中。

  • 現象:瀏覽器訪問時,根本不會發(fā)起對 .woff.ttf 字體文件的網絡請求,因為字體數據已經包含在 CSS 里了。
  • 結論:這是正常的優(yōu)化機制,能減少 HTTP 請求次數,提升加載速度,無需修復。

原因二:文件被重命名并提取到了根目錄

如果字體文件較大,構建工具會將其作為獨立的資源文件打包。為了防止瀏覽器緩存導致更新不生效,構建工具默認會給文件名加上一串哈希值(如 MyFont.a1b2c3d4.woff)。同時,根據你的打包配置,這些資源可能會被直接提取到 dist 的根目錄或 static 目錄下,而不再保留原本的 fonts 文件夾結構。

  • 現象:在瀏覽器 Network 面板中看到的請求路徑可能是 /a1b2c3d4.woff,而不是 /fonts/MyFont.woff。
  • 結論:只要瀏覽器能正常加載出字體(狀態(tài)碼 200),且頁面上字體顯示正常,就說明路徑解析是成功的。

如果你確實需要保留fonts目錄結構

如果你希望打包后的路徑嚴格保持 /fonts/xxx.woff 的結構,可以通過以下兩種方式解決:

方案 1:將字體文件移至 public 目錄(推薦)
public 目錄下的文件在打包時會原封不動地復制到 dist 目錄,不會經過構建工具的處理(不會被轉 Base64 或重命名)。

  1. 在根目錄的 public 文件夾下新建一個 fonts 文件夾,將字體文件放進去。
  2. 在 CSS 中使用絕對路徑引用:
@font-face {
  font-family: 'MyFont';
  /* 這里的 /fonts/ 對應 public/fonts/ */
  src: url('/fonts/MyFont.woff2') format('woff2');
}

方案 2:修改構建配置(針對 Webpack/Vue CLI)
如果你堅持使用 src/assets,可以在 vue.config.js 中修改 url-loaderfile-loader 的配置,強制指定輸出目錄并關閉 Base64 轉換(將 limit 設為 0):

// vue.config.js
module.exports = {
  chainWebpack: config => {
    const fontsRule = config.module.rule('fonts');
    fontsRule.uses.clear(); // 清除默認配置
    fontsRule
      .test(/\.(woff2?|eot|ttf|otf)(\?.*)?$/i)
      .use('url-loader')
      .loader('url-loader')
      .options({
        limit: 0, // 關閉 Base64 轉換
        name: 'fonts/[name].[hash:8].[ext]' // 強制輸出到 fonts 目錄下
      });
  }
};

建議:
你可以先打開瀏覽器的開發(fā)者工具(F12),切換到 Network(網絡) 面板,刷新頁面查看字體文件是否返回了 200 狀態(tài)碼。如果字體能正常顯示且沒有報 404 錯誤,建議保持現狀即可,這屬于構建工具的正常優(yōu)化行為。

以上就是Vue項目字體文件打包后fonts文件夾消失的原因分析與解決方案的詳細內容,更多關于Vue字體文件打包后fonts文件夾消失的資料請關注腳本之家其它相關文章!

相關文章

  • Vue使用PDF.js實現瀏覽pdf文件功能

    Vue使用PDF.js實現瀏覽pdf文件功能

    這篇文章主要為大家詳細介紹了Vue如何使用PDF.js實現瀏覽pdf文件功能,文中的實現步驟講解詳細,具有一定的借鑒價值,需要的可以參考一下
    2023-04-04
  • Vue3父組件訪問子組件方法/屬性的五種方案

    Vue3父組件訪問子組件方法/屬性的五種方案

    在Vue3的組件化開發(fā)中,父子組件間的通信是核心功能之一,本文將詳細介紹五種父組件訪問子組件屬性/方法的實現方案,包含最新的<script setup>語法糖實踐,需要的朋友可以參考下
    2025-03-03
  • 關于webpack-dev-server配置代理解決前端開發(fā)中的跨域問題

    關于webpack-dev-server配置代理解決前端開發(fā)中的跨域問題

    這篇文章主要介紹了關于webpack-dev-server配置代理解決前端開發(fā)中的跨域問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue2.x 通過后端接口代理,獲取qq音樂api的數據示例

    vue2.x 通過后端接口代理,獲取qq音樂api的數據示例

    今天小編就為大家分享一篇vue2.x 通過后端接口代理,獲取qq音樂api的數據示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • elementUI select組件使用及注意事項詳解

    elementUI select組件使用及注意事項詳解

    這篇文章主要介紹了elementUI select組件使用及注意事項詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • vue自定義組件實現v-model雙向綁定數據的實例代碼

    vue自定義組件實現v-model雙向綁定數據的實例代碼

    vue中父子組件通信,都是單項的,直接在子組件中修改prop傳的值vue也會給出一個警告,接下來就用一個小列子一步一步實現了vue自定義的組件實現v-model雙向綁定,需要的朋友可以參考下
    2021-10-10
  • Vue mixins混入使用解析

    Vue mixins混入使用解析

    如果我們在每個組件中去重復定義這些屬性和方法會使得項目出現代碼冗余并提高了維護難度,針對這種情況官方提供了Mixins特性,這時使用Vue mixins混入有很大好處,下面就介紹下Vue mixins混入使用方法,需要的朋友參考下吧
    2023-02-02
  • vue實現三級聯動動態(tài)菜單

    vue實現三級聯動動態(tài)菜單

    這篇文章主要為大家詳細介紹了vue實現三級聯動動態(tài)菜單,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue2使用思維導圖jsmind的詳細代碼

    vue2使用思維導圖jsmind的詳細代碼

    jsMind是一個基于Js的思維導圖庫,jsMind是一個純JavaScript類庫,用于創(chuàng)建、展示和操作思維導圖,這篇文章主要給大家介紹了關于vue2使用思維導圖jsmind的詳細代碼,需要的朋友可以參考下
    2024-06-06
  • vue 輸入電話號碼自動按3-4-4分割功能的實現代碼

    vue 輸入電話號碼自動按3-4-4分割功能的實現代碼

    這篇文章主要介紹了vue 輸入電話號碼自動按3-4-4分割功能的實現代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04

最新評論

宁强县| 漾濞| 麻城市| 泸溪县| 伊宁市| 湘西| 旌德县| 新丰县| 筠连县| 三亚市| 定边县| 潼南县| 海阳市| 静安区| 亳州市| 蓬溪县| 夏津县| 巢湖市| 舞阳县| 定州市| 陆良县| 镇远县| 古田县| 大荔县| 仙桃市| 汝州市| 兴安盟| 溆浦县| 清水县| 桐乡市| 大冶市| 邢台县| 农安县| 沈丘县| 孝感市| 东方市| 长阳| 北票市| 淅川县| 新宁县| 阜新|