目錄
原因分析
1. 字體檔案未載入成功
2. 位址錯誤
解決方法
1. 新增本機字體資源
2. 使用cdn
首頁 web前端 uni-app uniapp打包後字型圖示不顯示怎麼辦

uniapp打包後字型圖示不顯示怎麼辦

Apr 18, 2023 am 09:47 AM

近年來,隨著前端技術的不斷發展,字體圖示作為一種輕量級的圖標解決方案,被廣泛應用於Web端和行動端的設計中。在使用uniapp開發行動裝置應用程式時,我們也可以方便地使用字體圖標,但是經常會出現字體圖標在打包後無法正常顯示的問題。今天,我們將一起探討uniapp打包後字型圖示不顯示的原因與解決方法。

原因分析

1. 字體檔案未載入成功

首先,我們需要了解uniapp打包後會產生一個dist目錄,該目錄下的內容即為我們最終發布的應用,包括各種資源檔案和HTML檔案等。當我們使用字體圖示時,其實是在HTML文件中使用了CSS樣式,將資料來源設為字型圖示的字型文件,因此問題可能出現在HTML文件或字型檔上。

最常見的情況是字體檔案未載入成功,導致字體圖示無法顯示。可以透過F12開發者工具查看控制台輸出,如果存在404或network error且字體檔案是請求失敗狀態,那麼就可以判定字體檔案未載入成功。

2. 位址錯誤

另一種可能是我們引入字體的位址錯誤,因為uniapp中使用相對路徑來引入資源文件,所以需要保證HTML文件和字體文件在同一文件夾下。如果出現了檔案路徑錯誤,也會導致字體圖示無法正常顯示。同樣,透過控制台輸出可以判定是否存在路徑錯誤。

解決方法

1. 新增本機字體資源

如果字體檔案未載入成功,我們可以嘗試將字體檔案新增至本機資源中,然後在HTML檔案中使用本地相對路徑來引用。

  1. 在專案根目錄下新建一個fonts資料夾,將下載的字型檔案解壓縮到該資料夾中。
  2. 進入uni.scss文件,引入字體文件,如下所示:

    @font-face{
        font-family:'iconfont';
        src:url(../fonts/iconfont.ttf) format('truetype');
    }
    登入後複製

    這裡需要注意,@font-facefont-family 的名稱需要和HTML中使用的字體名稱保持一致。

  3. 在HTML檔案中使用字體圖標,如下所示:

    <i class="uni-icon uni-icon-wode"></i>
    登入後複製
    登入後複製

    這裡的uni-icon-wode是我們在字體檔案中自訂的圖示類別名,而uni-icon是uni.scss中定義的基礎類別。

若透過此方法解決了字體圖示無法顯示的問題,那麼恭喜你,問題已經解決了。但是,有時即使我們已經按照上述方法來處理,字體圖示依然無法正常顯示,這時就可以嘗試下面的方法。

2. 使用cdn

有時我們會發現字體檔案本地引用失敗,那麼我們可以考慮使用cdn來解決該問題。但是在使用cdn時,需要確保我們引入的cdn位址正確,並且由於cdn位址可能受到網路影響,所以最好提供多個備選方案。修改方式如下:

  1. manifest.json 檔案中,新增字體檔案的資源位址,如下所示:

    "networkTimeout": {
       "request": 5000,
       "downloadFile": 10000
    },
       "onDemandResourceRules": [
       {
          "host": "xxxxx.com",
          "files": [
             "/fonts/iconfont.ttf"
          ]
       }
    ],
    "preloadRule": {
       "async": [
          {"path": "xxxxx.com/fonts/iconfont.ttf"}
       ],
       "sync": [
       ]
    }
    登入後複製

    其中xxxxx.com為我們指定cdn的網域。

  2. uni.scss 檔案中使用cdn位址,如下所示:

    @font-face{
        font-family:'iconfont';
        src:url(//xxxxx.com/fonts/iconfont.ttf) format('truetype');
    }
    登入後複製

    這裡的// 表示使用了協議相同的相對路徑,適用於http、https等。

  3. 在HTML檔案中使用字體圖標,如下所示:

    <i class="uni-icon uni-icon-wode"></i>
    登入後複製
    登入後複製

    同樣,這裡的uni-icon-wode是我們在字體文件中自訂的圖示類別名稱。

要注意的是,使用cdn也可能會遇到其他問題,例如連線不穩定、檔案超過快取限制等,所以需要多做測試和備份方案。

總的來說,在使用uniapp開發行動應用程式時,字體圖示是一個很好的和輕量級的圖示解決方案,但是由於打包後的複雜性和資源處理方式等問題,可能會出現字體圖示無法正常顯示的情況。以上兩種方法可以幫助我們解決這些問題,讓我們的應用更美觀實用。

以上是uniapp打包後字型圖示不顯示怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1663
14
CakePHP 教程
1419
52
Laravel 教程
1313
25
PHP教程
1263
29
C# 教程
1236
24