首頁 >web前端 >uni-app >uniapp打包後字型圖示不顯示怎麼辦

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

PHPz
PHPz原創
2023-04-18 09:47:071630瀏覽

近年來,隨著前端技術的不斷發展,字體圖示作為一種輕量級的圖標解決方案,被廣泛應用於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