Làm thế nào để lưu trữ các biểu tượng material offline?


106

Tôi xin lỗi nếu đây là một câu hỏi rất đơn giản, nhưng làm cách nào để bạn sử dụng các biểu tượng tài liệu của google mà không có

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 

?

Tôi muốn ứng dụng của mình có thể hiển thị các biểu tượng ngay cả khi người dùng không có kết nối internet


Bài viết này giải thích cho Angular, nghĩ rằng có thể hữu ích cho ai đó, thecodeframework.com/…
Gagan

Câu trả lời:


112

Phương pháp 2. Hướng dẫn dành cho nhà phát triển tự lưu trữ

Tải xuống bản phát hành mới nhất từ ​​github (tài sản: tệp zip), giải nén và sao chép thư mục iconfont, chứa các tệp biểu tượng material design, vào dự án cục bộ của bạn - https://github.com/google/material-design-icons/ phát hành

Bạn chỉ cần sử dụng thư mục iconfont từ kho lưu trữ: nó chứa các phông chữ biểu tượng ở các định dạng khác nhau (để hỗ trợ nhiều trình duyệt) và css soạn sẵn.

  • Thay thế nguồn trong thuộc tính url của @ font-face, bằng đường dẫn tương đối đến thư mục iconfont trong dự án cục bộ của bạn, (nơi chứa các tệp phông chữ) ví dụ. url ("iconfont / MaterialIcons-Regular.ttf")
@font-face {
   font-family: 'Material Icons';
   font-style: normal;
   font-weight: 400;
   src: url(iconfont/MaterialIcons-Regular.eot); /* For IE6-8 */
   src: local('Material Icons'),
        local('MaterialIcons-Regular'),
        url(iconfont/MaterialIcons-Regular.woff2) format('woff2'),
        url(iconfont/MaterialIcons-Regular.woff) format('woff'),
        url(iconfont/MaterialIcons-Regular.ttf) format('truetype');
}

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;  /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;

  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;

  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;

  /* Support for IE. */
  font-feature-settings: 'liga';
}

<i class="material-icons">face</i>

Gói NPM / Bower

Google chính thức có tùy chọn phụ thuộc Bower và NPM - hãy làm theo Hướng dẫn biểu tượng vật liệu 1

Sử dụng bower :bower install material-design-icons --save

Sử dụng NPM :npm install material-design-icons --save

Biểu tượng Material : Ngoài ra, hãy xem phông chữ biểu tượng thiết kế Material design và khung CSS để tự lưu trữ các biểu tượng, từ https://marella.me/material-icons/ của @ marella


Ghi chú

Có vẻ như google có dự án ở chế độ bảo trì thấp. Bản phát hành cuối cùng, tại thời điểm viết bài, cách đây 3 năm!

Có một số vấn đề trên GitHub liên quan đến vấn đề này, nhưng tôi muốn tham khảo nhận xét của @cyberalien về vấn đề Is this project actively maintained? #951trong đó nó đề cập đến một số dự án cộng đồng đã phân nhánh và tiếp tục duy trì các biểu tượng tài liệu.



Bạn sẽ thực hiện việc này như thế nào đối với ứng dụng GAP trên điện thoại mà bạn không có miền?
Luke Tan

nhắm mục tiêu thư mục cục bộ của bạn trong url nguồn của @ font-face: url ("iconfont / MaterialIcons-Regular.woff2" - câu trả lời được cập nhật
bfmags

Này, bạn có thể làm một câu trả lời cập nhật về điều này được không Tôi đã tải xuống các biểu tượng mdl của mình với npm.
TheBAST

1
Đã giải quyết vấn đề của tôi… Tôi chỉ muốn lưu ý rằng chúng tôi chỉ cần iconfontthư mục từ toàn bộ kho lưu trữ.
securecurve

đối với loại "di chuyển tài nguyên cdn để được phân phối cục bộ", nó thường sẽ được đền đáp khi có dữ liệu thời gian phản hồi trung bình trên 3000 yêu cầu TRƯỚC và SAU KHI thay đổi - bạn sẽ ngạc nhiên về tần suất nó không đáng, bất kể nỗ lực của bạn để đạt được nó ...
Yordan Georgiev

36

Tôi đang xây dựng cho Angular 4/5 và thường làm việc ngoại tuyến và vì vậy những điều sau đây đã hiệu quả với tôi. Trước tiên hãy cài đặt NPM:

npm install material-design-icons --save

Sau đó, thêm phần sau vào styles.css:

@import '~material-design-icons/iconfont/material-icons.css';

10
khi gọi "NPM cài đặt" chờ đợi chờ đợi chờ đợi lol ... nhưng công trình sau thời gian dài
Sergio Cabral

2
@SergioCabral May mắn là bạn đưa ra nhận định về chờ đợi, nguyên nhân có khoảng 5 lần tôi nghĩ cài đặt này không được đi đâu hết ... :)
Alfa Bravo

1
Thank You Loved It Giải pháp tốt nhất là này cảm ơn <3
Ali Jamal

Làm việc cho tôi cũng ... :)
Aupr

3
bất kỳ ý tưởng làm thế nào để thêm các biểu tượng được phác thảo?
wutzebaer

20

Các cách tiếp cận trên không hiệu quả với tôi. Tôi tải xuống các tệp từ github, nhưng trình duyệt không tải phông chữ.

Những gì tôi đã làm là mở liên kết nguồn của biểu tượng tài liệu:

https://fonts.googleapis.com/icon?family=Material+Icons

và tôi thấy đánh dấu này:

    /* fallback */
@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: local('Material Icons'), local('MaterialIcons-Regular'), url(https://fonts.gstatic.com/s/materialicons/v22/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2) format('woff2');
}

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -moz-font-feature-settings: 'liga';
  -moz-osx-font-smoothing: grayscale;
}

Tôi mở liên kết url phông chữ woff https://fonts.gstatic.com/s/materialicons/v22/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2

và tải xuống tệp woff2.

Sau đó, tôi thay thế đường dẫn tệp woff2 bằng đường dẫn mới trong material-icon.css

@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: url(iconfont/MaterialIcons-Regular.eot); /* For IE6-8 */
  src: local('Material Icons'),
       local('MaterialIcons-Regular'),
       /* Old file: url(iconfont/MaterialIcons-Regular.woff2) format('woff2'), */
       /* load new file */ 
       url(2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2) format('woff2'),
       url(iconfont/MaterialIcons-Regular.ttf) format('truetype');
}

Điều đó làm cho mọi thứ hiệu quả với tôi.


Cảm ơn! Tôi đã gặp vấn đề tương tự và điều này đã khắc phục nó cho tôi.
David

Tôi giải quyết vấn đề của mình bằng cách tiếp cận này, nhưng sau đó tôi đã tìm thấy một git repo khác, từ đó tôi nhận được bản phát hành thích hợp.
Kaloyan Stamatov

@ Kaloyan Stamatov rất vui được chia sẻ git repo đó .. vì rất nhiều người gặp vấn đề với repo chính thức đã lỗi thời :)
Grashopper

@Grashopper, tôi không có nó nữa. Xin lỗi
Kaloyan Stamatov

1
cập nhật hơn vào năm 2019, giải pháp này cũng phù hợp với tôi.
compt

17

Nếu bạn sử dụng dự án webpack, sau

npm install material-design-icons --save

bạn chỉ cần

import materialIcons from 'material-design-icons/iconfont/material-icons.css'

7
Tôi không khuyên bạn nên làm điều này, repo này quá lớn, hãy sử dụng một mô tả. bên dưới npmjs.com/package/material-design-icons-iconfont Tôi cũng nhận thấy rằng trình duyệt sẽ lưu vào bộ nhớ cache font.googleapis.com/icon?family=Material+Icons và nó sẽ hoạt động ở chế độ ngoại tuyến. Thanh toán keemor.github.io/#
keemor

Tôi là người mới trong npm, bạn có thể nói rõ hơn import materialIcons from 'material-design-icons/iconfont/material-icons.css'. Chúng tôi thêm dòng này vào đâu? app.js hoặc một nơi nào khác. Tôi đang sử dụng framework7 với Vue và tôi đã thử. Nó không hiệu quả với tôi.
Tiến sĩ Suat Atan

@SuatAtanPhD bạn thêm nhập này giống như bất kỳ nhập kiểu nào khác. Nếu bạn sử dụng webpack bạn cần một cái gì đó giống như phong cách-loader, css-loader và bạn có thể đặt bất cứ nơi nào nhập khẩu này trong mã js của bạn, ví dụ như trong index.js hoặc app.js, vv
Vladislav Kosovskikh

1
Cách tiếp cận như vậy được khuyến khích để xây dựng một ứng dụng web của công ty mà có thể làm việc trong mạng nội bộ mà không cần truy cập vào Internet
Yurii Bratchuk

13

Đây có thể là một giải pháp dễ dàng


Nhận kho lưu trữ này là một nhánh của kho lưu trữ ban đầu mà Google đã xuất bản.

Cài đặt nó bằng bower hoặc npm

bower install material-design-icons-iconfont --save

npm install material-design-icons-iconfont --save

Nhập tệp css trên Trang HTML của bạn

<style>
  @import url('node_modules/material-design-icons-iconfont/dist/material-design-icons.css');
</style>

hoặc là

<link rel="stylesheet" href="node_modules/material-design-icons-iconfont/dist/material-design-icons.css">

Kiểm tra: Thêm biểu tượng bên trong thẻ body của Tệp HTML của bạn

<i class="material-icons">face</i>

Nếu bạn nhìn thấy biểu tượng khuôn mặt, bạn đã OK.

Nếu không hoạt động, hãy thử thêm cái này ..làm tiền tố vào node_modulesđường dẫn:

<link rel="stylesheet" href="../node_modules/material-design-icons-iconfont/dist/material-design-icons.css">

Việc sử dụng gói material-design-icon-iconfont hoạt động ngay cả với mat-iconthành phần tiêu chuẩn của Angular . Do đó, quá trình chuyển đổi là liền mạch.
Yuri

Đây là giải pháp mà làm việc cho tôi, trừ liên kết stylesheet trong index.html không làm việc - Tôi đã có thêm một nhập khẩu vào tập tin Styles.scss của tôi: @import"../node_modules/material-design-icons-iconfont/dist/material-design-icons.css"; Sau đó, các biểu tượng ở địa phương tổ chức của tôi nhảy vào cuộc sống
Ade

7

Công thức của tôi có ba bước:

  1. để cài đặt gói material-design-icon

    npm install material-design-icons
  2. để nhập tệp material-icon.css vào tệp / dự án .less hoặc .scss

    @import "~/node_modules/material-design-icons/iconfont/material-icons.css";
  3. để đưa mã đề xuất vào tệp / dự án reactjs .js

    <i className='material-icons' style={{fontSize: '36px'}}>close</i>

gói này không tồn tại nữa
yehonatan yehezkel

với cli góc, làm NPM cài đặt tài liệu thiết kế-biểu tượng và sau đó thêm css trong angular.json -> architect-> dựng-> phong cách
Wlada

6

Sử dụng material-design-icon-iconfont

Tiết lộ đầy đủ, tôi là tác giả của gói này

Dự án material-design-icon của Google đang được bảo trì thấp và đã lỗi thời trong một thời gian . Có một khoảng cách giữa phiên bản trong https://material.io/icons/ và phiên bản trong material-design-icon .

Tôi đã tạo material-design-icon-iconfont để giải quyết những vấn đề chính sau:

  • material-design-icon kẹt npm install- tất cả các tệp svg / xml / ... không liên quan đã bị xóa
  • Các tệp phông chữ luôn được cập nhật trực tiếp từ Google FontsCDN
  • Hỗ trợ cho scss

Cài đặt qua npm

npm install material-design-icons-iconfont --save

Tùy thuộc vào cách bạn đóng gói ứng dụng web của mình ( webpack/ gulp/ bower/ ...), bạn sẽ cần nhập tệp .css/ .scss(và có thể thay đổi đường dẫn phông chữ tương đối)


Nhập bằng SCSS

Nhập một trong các tệp sass của bạn

$material-design-icons-font-path: '~material-design-icons-iconfont/dist/fonts/';
@import '~material-design-icons-iconfont/src/material-design-icons';

Sau đó, hãy tham khảo biểu tượng <i class="material-icons">+ biểu tượng-id + mong muốn của bạn</i>

<i class="material-icons">contact_support</i>

Trang demo

Nó đi kèm với một trang demo nhẹ để hỗ trợ tìm kiếm và sao chép các phông chữ

hình ảnh


1
Tôi đang gặp sự cố với PWA. Các biểu tượng đang hoạt động khi bạn đang ở trong trình duyệt nhưng khi bạn thêm phím tắt trên màn hình chính và chạy các biểu tượng ứng dụng sẽ không hiển thị.
Wlada

4

Tôi đã cố gắng biên dịch mọi thứ cần thực hiện cho các biểu tượng tự lưu trữ trong câu trả lời của mình. Bạn cần làm theo 4 bước đơn giản sau.

  1. Mở thư mục iconfont của kho lưu trữ materialize

    link- https://github.com/google/material-design-icons/tree/master/iconfont

  2. Tải xuống ba tệp biểu tượng này ->

    MaterialIcons-Regular.woff2 - format ('woff2')

    MaterialIcons-Regular.woff - format ('woff')

    MaterialIcons-Regular.ttf - format ('truetype');

    Lưu ý - Sau khi tải xuống, bạn có thể đổi tên nó thành bất kỳ tên nào bạn muốn.

  3. Bây giờ, hãy truy cập CSS của bạn và thêm mã này

@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: url(MaterialIcons-Regular.eot); /* For IE6-8 */
  src: local('Material Icons'),
       local('MaterialIcons-Regular'),
       url(MaterialIcons-Regular.woff2) format('woff2'),
       url(MaterialIcons-Regular.woff) format('woff'),
       url(MaterialIcons-Regular.ttf) format('truetype');
}

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;  /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;

  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;

  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;

  /* Support for IE. */
  font-feature-settings: 'liga';
}


Lưu ý: Địa chỉ được cung cấp trong src: url (...) phải liên quan đến 'Tệp CSS' chứ không phải tệp index.html. Ví dụ, nó có thể là src: url (../ myicons / MaterialIcons-Regular.woff2)


  1. Bạn đã sẵn sàng sử dụng ngay bây giờ và đây là cách nó có thể được thực hiện trong HTML

<i class="material-icons">face</i>

Bấm vào đây để xem tất cả các biểu tượng có thể được sử dụng.


404 trên liên kết của bạn
Welyngton Dal Prá

1
@ WelyngtonDalPrá Cảm ơn. đã sửa
abhinav1602

3

Sau khi bạn làm xong npm install material-design-icons, hãy thêm cái này vào tệp CSS chính của bạn:

@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: url(~/material-design-icons/iconfont/MaterialIcons-Regular.eot); /* For IE6-8 */
  src: local('Material Icons'),
       local('MaterialIcons-Regular'),
       url(~material-design-icons/iconfont/MaterialIcons-Regular.woff2) format('woff2'),
       url(~material-design-icons/iconfont/MaterialIcons-Regular.woff) format('woff'),
       url(~material-design-icons/iconfont/MaterialIcons-Regular.ttf) format('truetype');
}

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;  /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;

  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;

  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;

  /* Support for IE. */
  font-feature-settings: 'liga';
}

3

Với cli góc

npm install angular-material-icons --save

hoặc là

npm install material-design-icons-iconfont --save

material-design-icon-iconfont là phiên bản cập nhật mới nhất của các biểu tượng. Các biểu tượng góc cạnh không được cập nhật trong một thời gian dài

Chờ đợi, đợi cài đặt được thực hiện và sau đó thêm nó vào angle.json -> project -> architecture -> styles

 "styles": [
          "node_modules/material-design-icons/iconfont/material-icons.css",
          "src/styles.scss"
        ],

hoặc nếu bạn đã cài đặt material-desing-icon-iconfont thì

"styles": [
              "node_modules/material-design-icons-iconfont/dist/material-design-icons.css",
              "src/styles.scss"
            ],

3

Cập nhật 2019 tại đây:

Để tự lưu trữ các biểu tượng vật liệu của bạn, các biểu tượng Thông thường, Tròn, Sắc nét, tất cả các biến thể. Hãy tải chúng từ repo này: https://github.com/petergng/material-icon-font

Vì một số lý do, tôi không biết tại sao những phông chữ này không thể dễ dàng truy cập được từ kho lưu trữ của Google.

Nhưng của bạn đây.

Sau khi tải xuống gói, hãy chuyển đến thư mục bin và bạn sẽ thấy bốn biến thể. Tất nhiên, nó là vào bạn để sử dụng cái nào.

Để sử dụng chúng, hãy tạo một tệp css và

  1. Tạo khuôn mặt phông chữ cho từng biến thể bạn cần:
@font-face {
    font-family: 'Material Icons';
    font-style: normal;
    font-weight: 400;
    src: url(./icons/regular/Material-Icons-Regular.eot); /* For IE6-8 */
    src: local('Material-Icons-Regular'),
    url(./icons/regular/Material-Icons-Regular.woff2) format('woff2'),
    url(./icons/regular/Material-Icons-Regular.woff) format('woff'),
    url(./icons/regular/Material-Icons-Regular.ttf) format('truetype');
}

@font-face {
    font-family: 'Material Icons Round';
    font-style: normal;
    font-weight: 400;
    src: url(./icons/round/Material-Icons-Round.eot); /* For IE6-8 */
    src: local('Material-Icons-Round'),
    url(./icons/round/Material-Icons-Round.woff2) format('woff2'),
    url(./icons/round/Material-Icons-Round.woff) format('woff'),
    url(./icons/round/Material-Icons-Round.svg) format('svg'),
    url(./icons/round/Material-Icons-Round.ttf) format('truetype');
}

@font-face {
    font-family: 'Material Icons Sharp';
    font-style: normal;
    font-weight: 400;
    src: url(./icons/sharp/Material-Icons-Sharp.eot); /* For IE6-8 */
    src: local('Material-Icons-Sharp'),
    url(./icons/sharp/Material-Icons-Sharp.woff2) format('woff2'),
    url(./icons/sharp/Material-Icons-Sharp.woff) format('woff'),
    url(./icons/sharp/Material-Icons-Sharp.svg) format('svg'),
    url(./icons/sharp/Material-Icons-Sharp.ttf) format('truetype');
}

Các urlsẽ liên kết đến nơi các biểu tượng này nằm trong dự án của bạn.

  1. Bây giờ hãy đăng ký các lớp biểu tượng:
.material-icons-outlined, .material-icons {
    font-weight: normal;
    font-style: normal;
    font-size: 24px;  /* Preferred icon size */
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
}

Điều này sẽ làm cho cả hai .material-icons-outlined,.material-iconscác lớp sử dụng các mặc định giống nhau. Nếu bạn muốn sử dụng .material-icons-sharp, chỉ cần thêm nó vào hai tên lớp.

  1. Cuối cùng, hãy để chúng tôi bổ sung mặt phông chữ mà bạn đã lấy từ bước 1.
.material-icons {
    font-family: 'Material Icons';
}
.material-icons-outlined {
    font-family: 'Material Icons Outline';
}

Một lần nữa, để sử dụng nhiều biến thể hơn, như Sharp, chỉ cần thêm khối của nó như hai biến thể ở trên.

Sau khi hoàn tất ... hãy truy cập html của bạn và sử dụng các biểu tượng mới được đúc của bạn.

<i class="material-icons-outlined">hourglass_empty</i>
<i class="material-icons">phone</i>

2

Trên http://materialize.com/icons.html thông tin tiêu đề kiểu bạn đưa vào trang, bạn có thể đi tới Siêu kết nối thực và tạo các bản sao được bản địa hóa để sử dụng các biểu tượng ngoại tuyến.

Đây là cách thực hiện.NB: Bạn sẽ tải xuống hai tệp trong tất cả icon.csssomefile.woff .

  1. Truy cập URL sau theo yêu cầu trong tiêu đề

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> .

Lưu trang dưới dạng any_filename.css. Mặc định là icon.css

  1. Hãy tìm một dòng như thế này

src: local('Material Icons'), local('MaterialIcons-Regular'), url(https://fonts.gstatic.com/s/materialicons/v22/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2)

  1. Truy cập URL có .woff kết thúc nó

https://fonts.gstatic.com/s/materialicons/v22/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2. Trình duyệt của bạn sẽ tự động tải xuống. Lưu nó trong thư mục CSS của bạn.

  1. Bây giờ bạn sẽ có hai tệp icon.css2fcrYFNa .... mY.wof22 , hãy lưu cả hai tệp đó vào css của bạn. Bây giờ thực hiện các chỉnh sửa trong vị trí tiêu đề css của bạn đối với icon.css trong thư mục của bạn. Chỉ cần đảm bảo rằng tệp .woff2 luôn nằm trong cùng thư mục với icon.css. Hãy thoải mái chỉnh sửa các tên tệp dài.


2

Tiêu đề câu hỏi hỏi cách lưu trữ biểu tượng vật liệu ngoại tuyến nhưng phần nội dung giải thích rõ rằng mục tiêu là sử dụng biểu tượng vật liệu ngoại tuyến (tôi nhấn mạnh) .

Sử dụng bản sao của riêng bạn của các tệp biểu tượng tài liệu là một cách tiếp cận / triển khai hợp lệ. Một cách khác, đối với những trường hợp có thể sử dụng nhân viên dịch vụ là để nhân viên dịch vụ chăm sóc nó. Bằng cách đó, bạn không gặp khó khăn trong việc lấy một bản sao và cập nhật nó.

Ví dụ: tạo một service worker bằng Workbox , sử dụng cách tiếp cận đơn giản nhất là chạy workbox-cli và chấp nhận các giá trị mặc định, sau đó nối văn bản sau vào service worker đã tạo:

workboxSW.router.registerRoute('https://fonts.googleapis.com/(.*)',
workboxSW.strategies.cacheFirst({
  cacheName: 'googleapis',
  cacheExpiration: {
    maxEntries: 20
  },
  cacheableResponse: {statuses: [0, 200]}
})
);

Sau đó, bạn có thể kiểm tra xem nó đã được lưu vào bộ nhớ đệm trong Chrome bằng cách sử dụng F12> Ứng dụng> Bộ nhớ> IndexedDB và tìm mục nhập có googleapis trong tên.


Tôi cũng nhận được điều này để làm việc với một số thay đổi nhỏ. Tôi đã thay đổi "workboxSW" thành "workbox". Tôi đã thay đổi "bộ định tuyến" thành "định tuyến" và thêm mã này vào tệp sw_config.js của tôi được tạo khi sử dụng trình hướng dẫn cli hộp làm việc.
Jason Allshorn

2

Kể từ năm 2020, cách tiếp cận của tôi là sử dụng gói material-icon-font . Nó đơn giản hóa việc sử dụng gói material-design-icon của Google và material-design-icon-iconfont dựa trên cộng đồng .

  1. Cài đặt gói. npm install material-icons-font --save

  2. Thêm đường dẫn của tệp CSS của gói vào thuộc tính style của tệp angle.json trong dự án của bạn.

    ... "styles": [ "./node_modules/material-icons-font/material-icons-font.css" ], ...

  3. Nếu sử dụng SCSS, hãy sao chép nội dung bên dưới lên đầu tệp styles.scss của bạn.

    @import '~material-icons-font/sass/variables'; @import '~material-icons-font/sass/mixins'; $MaterialIcons_FontPath: "~material-icons-font/fonts"; @import '~material-icons-font/sass/main'; @import '~material-icons-font/sass/Regular';

  4. Sử dụng các biểu tượng trong tệp HTML của dự án của bạn.

    // Using icon tag
    <i class="material-icons">face</i>
    <i class="material-icons md-48">face</i>
    <i class="material-icons md-light md-inactive">face</i>
    
    // Using Angular Material's <mat-icon> tag
    <mat-icon>face</mat-icon>
    <mat-icon>add_circle</mat-icon>
    <mat-icon>add_circle_outline</mat-icon>

Biểu tượng từ @ angle / material có xu hướng bị vỡ khi phát triển ngoại tuyến. Thêm gói material-icon-font kết hợp với @ angle / material cho phép bạn sử dụng thẻ trong khi phát triển ngoại tuyến.


0

Cài đặt gói npm

npm install material-design-icons --save

Đặt đường dẫn tệp css đến tệp styles.css

@import "../node_modules/material-design-icons-iconfont/dist/material-design-icons.css";

0

Phương pháp Kaloyan Stamatov là tốt nhất. Trước tiên, hãy truy cập https://fonts.googleapis.com/icon?family=Material+Icons . và sao chép tệp css. nội dung trông như thế này

/* fallback */
@font-face {
    font-family: 'Material Icons';
    font-style: normal;
    font-weight: 400;
    src: url(https://fonts.gstatic.com/s/materialicons/v37/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2');
}
    
.material-icons {
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -moz-font-feature-settings: 'liga';
    -moz-osx-font-smoothing: grayscale;
}

Dán nguồn của phông chữ vào trình duyệt để tải xuống tệp woff2 https://fonts.gstatic.com/s/materialicons/v37/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 Sau đó thay thế tệp trong nguồn ban đầu. Bạn có thể đổi tên nó nếu bạn muốn Không cần tải xuống tệp 60MB từ github. Chết đơn giản Mã của tôi trông như thế này

@font-face {
    font-family: 'Material Icons';
    font-style: normal;
    font-weight: 400;
    src: url(materialIcon.woff2) format('woff2');
}

.material-icons {
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -moz-font-feature-settings: 'liga';
    -moz-osx-font-smoothing: grayscale;
}

trong khi materialIcon.woff2 là tệp woff2 được tải xuống và thay thế.


1
Không làm việc trên tất cả các trình duyệt, xem câu trả lời SO này để biết thêm thông tin: stackoverflow.com/questions/11002820/...
xaviert

-1
npm install material-design-icons

@import '~material-design-icons/iconfont/material-icons.css';

cũng đã làm việc cho tôi với Angular Material 8


-1

Đã thêm cái này vào cấu hình web và lỗi đã biến mất

<system.webServer>
    <staticContent>
      <remove fileExtension=".woff" /> 
      <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
      <remove fileExtension=".woff2" /> 
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
    </staticContent>

-1

Nhân tiện có sẵn video trên youtube với hướng dẫn từng bước.

https://youtu.be/7j6eOkhISzk

  1. Đây là các bước. Tải xuống gói biểu tượng materialize từ https://github.com/google/material-design-icons/releases

  2. Sao chép thư mục biểu tượng-phông chữ và đổi tên nó thành các biểu tượng.

  3. Mở tệp materialize.css và cập nhật các đường dẫn sau:

a. từ url (MaterialIcons-Regular.eot) sang url (../ fonts / MaterialIcons-Regular.eot) b. từ định dạng url (MaterialIcons-Regular.woff2) ('woff2') sang định dạng url (../ fonts / MaterialIcons-Regular.woff2) ('woff2') c. từ định dạng url (MaterialIcons-Regular.woff) ('woff') sang định dạng url (../ fonts / MaterialIcons-Regular.woff) ('woff') d. từ định dạng url (MaterialIcons-Regular.ttf) ('truetype') sang định dạng url (../ fonts / MaterialIcons-Regular.ttf) ('truetype')

  1. Sao chép materialize-icon.css vào thư mục css của bạn và tham chiếu nó trong tệp html của bạn.

Mọi thứ sẽ hoạt động như phép thuật!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.