Jak udostępniać ikony materiałów w trybie offline?


106

Przepraszam, jeśli jest to bardzo proste pytanie, ale jak używać ikon materiałów Google bez rozszerzenia

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

?

Chciałbym, aby moja aplikacja mogła wyświetlać ikony nawet wtedy, gdy użytkownik nie ma połączenia z Internetem


Ten artykuł wyjaśnia dla Angulara, myśl może być pomocna dla kogoś, thecodeframework.com/…
Gagan,

Odpowiedzi:


112

Metoda 2. Podręcznik programisty do samodzielnego hostowania

Pobierz najnowszą wersję z github (zasoby: plik zip), rozpakuj i skopiuj folder iconfont, zawierający pliki ikon Material Design, do swojego lokalnego projektu - https://github.com/google/material-design-icons/ wydania

Wystarczy użyć folderu iconfont z archiwum: zawiera on czcionki ikon w różnych formatach (dla obsługi wielu przeglądarek) oraz standardowy plik css.

  • Zastąp źródło w atrybucie url @ font-face względną ścieżką do folderu iconfont w twoim lokalnym projekcie (gdzie znajdują się pliki czcionek) np. 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>

Pakiety NPM / Bower

Google oficjalnie ma opcję zależności Bower i NPM - postępuj zgodnie z Przewodnikiem po ikonach materiałów 1

Korzystanie z altany :bower install material-design-icons --save

Korzystanie z NPM :npm install material-design-icons --save

Material Icons : Alternatywnie spójrz na czcionkę ikony Material Design i strukturę CSS, aby samodzielnie hostować ikony, z https://marella.me/material-icons/ @ marella.


Uwaga

Wygląda na to, że Google ma projekt w trybie niewielkiej konserwacji. Ostatnie wydanie było w chwili pisania tego tekstu 3 lata temu!

Jest kilka problemów w GitHub dotyczących tego, ale chciałbym odnieść się do komentarza @cyberalien na temat problemu, w Is this project actively maintained? #951którym odnosi się on do kilku projektów społeczności, które rozwidliły i nadal utrzymują ikony materiałów.



Jak zrobiłbyś to w przypadku aplikacji GAP na telefon, w której nie masz domeny?
Luke Tan

kieruj na swój folder lokalny w źródłowym adresie URL @ font-face: url ("iconfont / MaterialIcons-Regular.woff2" - zaktualizowana odpowiedź
bfmags

Hej, czy możesz podać zaktualizowaną odpowiedź na to pytanie. Pobrałem ikony mdl za pomocą npm.
TheBAST

1
Rozwiązałem mój problem… Chciałem tylko zauważyć, że potrzebujemy tylko iconfontfolderu z całego archiwum.
securecurve

dla tego typu „przeniesienia zasobu cdn do obsługi lokalnie” zwykle opłaca się mieć solidne ponad 3000 żądań danych o średnim czasie odpowiedzi PRZED i PO zmianie - zdziwiłbyś się, jak często nie jest to tego warte, niezależnie od Twój wysiłek, aby to osiągnąć ...
Yordan Georgiev

37

Tworzę dla Angular 4/5 i często pracuję w trybie offline, więc poniższe rozwiązania zadziałały. Najpierw zainstaluj NPM:

npm install material-design-icons --save

Następnie dodaj do styles.css:

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

10
kiedy dzwonisz "npm install" czekaj czekaj czekaj lol ... ale działa po długim czasie
Sergio Cabral

2
@SergioCabral Na szczęście skomentowałeś czekanie, bo około 5 razy myślałem, że ta instalacja nigdzie się nie udaje ... :)
Alfa Bravo

1
Dziękuję Bardzo mi się podobało To jest najlepsze rozwiązanie Dziękuję <3
Ali Jamal

Pracuje też dla mnie ... :)
Aupr

3
masz pomysł, jak dodać zarysowane ikony?
wutzebaer

20

U mnie górne podejścia nie działają. Ściągam pliki z github, ale przeglądarka nie załadowała czcionek.

Co zrobiłem, to otworzyłem link do źródła ikony materiału:

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

i zobaczyłem ten znacznik:

    /* 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;
}

Otwieram link do adresu URL czcionki woff https://fonts.gstatic.com/s/materialicons/v22/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2

i pobierz plik woff2.

Następnie zastępuję ścieżkę do pliku woff2 nową w material-icons.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');
}

To sprawia, że ​​coś mi pasuje.


Dzięki! Miałem ten sam problem i to rozwiązało go dla mnie.
David,

Rozwiązuję swój problem za pomocą tego podejścia, ale później znalazłem inne repozytorium git, skąd otrzymałem odpowiednie wydanie.
Kaloyan Stamatov,

@ Kaloyan Stamatov byłoby miło podzielić się tym repozytorium git .. ponieważ wiele osób ma problem z nieaktualnym oficjalnym repozytorium :)
Grashopper

@Grashopper, już go nie mam. Przepraszamy
Kaloyan Stamatov

1
bardziej aktualne w 2019 roku, to rozwiązanie również się sprawdziło.
compt

17

Jeśli używasz projektu webpack, po

npm install material-design-icons --save

po prostu musisz

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

7
Nie polecam tego robić, to repozytorium jest o wiele za duże, użyj jednego opisu. poniżej npmjs.com/package/material-design-icons-iconfont Zauważyłem też, że przeglądarka będzie cache'ować fonts.googleapis.com/icon?family=Material+Icons i będzie działać w trybie offline. Kasa keemor.github.io/#
keemor

Jestem nowicjuszem w npm, możesz to rozwinąć import materialIcons from 'material-design-icons/iconfont/material-icons.css'. Dodajemy tę linię do gdzie? app.js lub gdzie indziej. Używam framework7 z Vue i próbowałem. To mi się nie udało.
Doktor Suat Atan

@SuatAtanPhD dodasz ten import jak każdy inny import stylu. Jeśli używasz webpacka, potrzebujesz czegoś takiego jak style-loader, css-loader i możesz umieścić ten import w dowolnym miejscu kodu js, na przykład w index.js lub app.js itp.
Vladislav Kosovskikh

1
Takie podejście jest zalecane przy budowaniu korporacyjnej aplikacji internetowej, która może pracować w sieci wewnętrznej bez dostępu do Internetu
Yurii Bratchuk

13

To może być łatwe rozwiązanie


Pobierz to repozytorium, które jest rozwidleniem oryginalnego repozytorium opublikowanego przez Google.

Zainstaluj go za pomocą altany lub npm

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

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

Zaimportuj plik css na swoją stronę HTML

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

lub

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

Test: dodaj ikonę wewnątrz tagu body w pliku HTML

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

Jeśli widzisz ikonę twarzy, wszystko jest w porządku.

Jeśli nie zadziała, spróbuj dodać ten ..prefiks do node_modulesścieżki:

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

Wykorzystanie pakietu material-design-icons-iconfont działa nawet ze standardowym mat-iconkomponentem Angulara . Dzięki temu przejście jest płynne.
Jurij

To rozwiązanie zadziałało dla mnie, z wyjątkiem linku do arkusza stylów w index.html, który nie działał - musiałem dodać import do mojego pliku Styles.scss: @import"../node_modules/material-design-icons-iconfont/dist/material-design-icons.css"; Potem moje lokalnie hostowane ikony ożyły
Ade

7

Mój przepis składa się z trzech kroków:

  1. aby zainstalować pakiet Material-Design-Icons

    npm install material-design-icons
  2. aby zaimportować plik material-icons.css do pliku / projektu .less lub .scss

    @import "~/node_modules/material-design-icons/iconfont/material-icons.css";
  3. aby dołączyć zalecany kod do pliku / projektu reactjs .js

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

ten pakiet już nie istnieje
yehonatan yehezkel

z angular cli, zrób npm zainstaluj material-design-icons, a następnie dodaj css w angular.json -> architekt-> build-> styles
Wlada

6

Użyj czcionki material-design-icons-iconfont

Pełne ujawnienie, jestem autorem tego pakietu

Projekt Google Material-Design-Icons jest tani w utrzymaniu i od jakiegoś czasu jest nieaktualny . Istnieje luka między wersją w https://material.io/icons/ a wersją w material-design-icons .

Stworzyłem material-design-icons-iconfont, aby rozwiązać te główne problemy:

  • Material-design-icons zacina się npm install- wszystkie nieistotne pliki svg / xml / ... zostały usunięte
  • Pliki czcionek są zawsze aktualne prosto z Google FontsCDN
  • Wsparcie dla scss

Zainstaluj przez npm

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

Zależy to od tego, jak spakujesz swoją aplikację internetową ( webpack/ gulp/ bower/ ...), musisz zaimportować plik .css/ .scss(i możesz zmienić względną ścieżkę czcionek)


Importuj przy użyciu SCSS

Zaimportuj do jednego ze swoich plików sass

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

Później odwołaj się do wybranej ikony <i class="material-icons">+ id-ikony +</i>

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

Strona demonstracyjna

Zawiera lekką stronę demonstracyjną, która ułatwia wyszukiwanie i kopiowanie i wklejanie czcionek

wizerunek


1
Mam problem z PWA. Ikony działają, gdy jesteś w przeglądarce, ale po dodaniu skrótu na ekranie głównym i uruchomieniu ikony aplikacji nie są wyświetlane.
Wlada

4

W mojej odpowiedzi próbowałem skompilować wszystko, co należy zrobić, aby ikony samodzielnego hostingu. Musisz wykonać te 4 proste kroki.

  1. Otwórz folder iconfont repozytorium materialize

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

  2. Pobierz te trzy pliki ikon ->

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

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

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

    Uwaga - po pobraniu możesz zmienić jego nazwę na dowolną.

  3. Teraz przejdź do swojego CSS i dodaj ten kod

@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';
}


Uwaga: adres podany w src: url (...) powinien odnosić się do „pliku CSS”, a nie do pliku index.html. Na przykład może to być src: url (../ myicons / MaterialIcons-Regular.woff2)


  1. Jesteś teraz gotowy do użycia i oto jak można to zrobić w HTML

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

Kliknij tutaj, aby zobaczyć wszystkie ikony, których można użyć.


404 na twój link
Welyngton Dal Prá

1
@ WelyngtonDalPrá Thanks. poprawione
abhinav1602

3

Po zakończeniu npm install material-design-iconsdodaj to w swoim głównym pliku CSS:

@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

Z kątowym zaciskiem

npm install angular-material-icons --save

lub

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

material-design-icons-iconfont to najnowsza zaktualizowana wersja ikon. ikony angular-material-icons nie są aktualizowane przez długi czas

Poczekaj poczekaj poczekaj, aż instalacja zostanie zakończona, a następnie dodaj ją do angular.json -> projects -> architect -> styles

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

lub jeśli zainstalowałeś wtedy material-desing-icons-iconfont

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

3

Aktualizacja 2019 tutaj:

Aby samodzielnie hostować ikony materiałów, zwykłe, zaokrąglone, ostre, wszystkie warianty. Zdobądź je z tego repozytorium: https://github.com/petergng/material-icon-font

Z jakiegoś powodu nie wiem, dlaczego te czcionki nie są łatwo dostępne w repozytoriach Google.

Ale proszę bardzo.

Po pobraniu pakietu przejdź do folderu bin, a zobaczysz cztery warianty. Oczywiście wybór należy do Ciebie.

Aby z nich skorzystać, utwórz plik css i

  1. Wygeneruj krój czcionki dla każdego potrzebnego wariantu:
@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');
}

urlBędzie link do miejsca, gdzie znajdują się ikony w swoim projekcie.

  1. Teraz zarejestrujmy klasy ikon:
.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;
}

Spowoduje to, że obie .material-icons-outlined, i .material-iconsklasy będą używać tych samych wartości domyślnych. Jeśli chcesz użyć .material-icons-sharp, po prostu dodaj go do dwóch nazw klas.

  1. Na koniec pozwól nam podłączyć krój czcionki pobrany w kroku 1.
.material-icons {
    font-family: 'Material Icons';
}
.material-icons-outlined {
    font-family: 'Material Icons Outline';
}

Ponownie, aby użyć więcej wariantów, takich jak Sharp, po prostu dodaj jego blok, tak jak dwa powyżej.

Po zakończeniu ... przejdź do swojego HTML i użyj nowo wybitych ikon.

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

2

Pod adresem http://materialize.com/icons.html informacji w nagłówku stylu, które umieszczasz na stronie, możesz przejść do rzeczywistego hiperłącza i wykonać zlokalizowane kopie, aby używać ikon w trybie offline.

Oto instrukcja. Uwaga: pobierzesz dwa pliki we wszystkich plikach icon.css i somefile.woff .

  1. Przejdź do następującego adresu URL zgodnie z wymaganiami w nagłówku

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

Zapisz stronę jako cokolwiek_nazwa_pliku.css. Domyślnie jest to icon.css

  1. Poszukaj takiej linii

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

  1. Odwiedź adres URL z końcówką .woff

https://fonts.gstatic.com/s/materialicons/v22/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2. Twoja przeglądarka automatycznie go pobierze. Zapisz go w swoim folderze CSS.

  1. Powinieneś teraz mieć dwa pliki icon.css i 2fcrYFNa .... mY.wof22 , zapisz je oba w swoim css. Teraz wprowadź zmiany w lokalizacji swojego nagłówka css w pliku icon.css w swoich katalogach. Upewnij się tylko, że plik .woff2 znajduje się zawsze w tym samym folderze co plik icon.css. Możesz edytować długie nazwy plików.


2

Tytuł pytania pyta, jak hostować ikony materiałów w trybie offline, ale treść wyjaśnia, że ​​celem jest użycie ikon materiałów w trybie offline (wyróżnienie moje) .

Używanie własnej kopii plików ikon materiałów jest prawidłowym podejściem / implementacją. Innym, dla tych, którzy mogą skorzystać z usług pracownika, jest pozwolenie mu się tym zająć. W ten sposób nie musisz mieć kłopotów z uzyskaniem kopii i aktualizowaniem jej.

Na przykład, wygeneruj pracownika serwisu za pomocą Workboxa , używając najprostszej metody polegającej na uruchomieniu workbox-cli i zaakceptowaniu ustawień domyślnych, a następnie dołącz następujący tekst do wygenerowanego elementu Service Worker:

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

Następnie możesz sprawdzić, czy został zapisany w pamięci podręcznej w Chrome, używając F12> Aplikacja> Pamięć> IndexedDB i poszukaj wpisu z googleapis w nazwie.


Mam to do pracy również z kilkoma małymi zmianami. Zmieniłem „workboxSW” na „workbox”. Zmieniłem „router” na „routing” i dodałem ten kod do mojego pliku sw_config.js, który jest generowany podczas korzystania z kreatora workbox cli.
Jason Allshorn

2

Od 2020 roku moje podejście polega na używaniu pakietu material-icons-font . Upraszcza korzystanie z pakietu material-design-icons firmy Google i opartej na społeczności czcionek material-design-icons-iconfont .

  1. Zainstaluj pakiet. npm install material-icons-font --save

  2. Dodaj ścieżkę do pliku CSS pakietu do właściwości style pliku angular.json projektu.

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

  3. Jeśli używasz SCSS, skopiuj poniższą zawartość na górę pliku styles.scss.

    @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. Użyj ikon w pliku HTML swojego projektu.

    // 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>

Ikony z @ angular / material mają tendencję do zrywania podczas programowania offline. Dodanie pakietu material-icons-font w połączeniu z @ angular / material umożliwia używanie tagu podczas programowania offline.


0

Zainstaluj pakiet npm

npm install material-design-icons --save

Umieść ścieżkę do pliku css do pliku styles.css

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

0

Najlepsza jest metoda Kaloyana Stamatova. Najpierw przejdź do https://fonts.googleapis.com/icon?family=Material+Icons . i skopiuj plik css. treść wygląda tak

/* 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;
}

Wklej źródło czcionki do przeglądarki, aby pobrać plik woff2 https://fonts.gstatic.com/s/materialicons/v37/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 Następnie zamień plik w oryginalnym źródle. Możesz zmienić jego nazwę, jeśli chcesz. Nie ma potrzeby pobierania pliku 60 MB z github. Dead simple Mój kod wygląda tak

@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;
}

podczas gdy materialIcon.woff2 jest pobranym i zastąpionym plikiem woff2.


1
Nie działa we wszystkich przeglądarkach, zobacz tę odpowiedź SO, aby uzyskać więcej informacji: stackoverflow.com/questions/11002820/ ...
xaviert

-1
npm install material-design-icons

i

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

pracował również dla mnie z Angular Material 8


-1

Dodano to do konfiguracji internetowej i błąd zniknął

<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

Nawiasem mówiąc, na youtube jest dostępny film z instrukcjami krok po kroku.

https://youtu.be/7j6eOkhISzk

  1. Oto kroki. Pobierz pakiet ikon materialize ze strony https://github.com/google/material-design-icons/releases

  2. Skopiuj folder icon-font i zmień jego nazwę na icons.

  3. Otwórz plik materialize.css i zaktualizuj następujące ścieżki:

za. z url (MaterialIcons-Regular.eot) do url (../ fonts / MaterialIcons-Regular.eot) b. z formatu url (MaterialIcons-Regular.woff2) ('woff2') do formatu url (../ fonts / MaterialIcons-Regular.woff2) ('woff2') c. z formatu url (MaterialIcons-Regular.woff) ('woff') do formatu url (../ fonts / MaterialIcons-Regular.woff) ('woff') d. z formatu url (MaterialIcons-Regular.ttf) („truetype”) do formatu url (../ fonts / MaterialIcons-Regular.ttf) („truetype”)

  1. Skopiuj materialize-icon.css do swojego folderu css i umieść w nim odniesienie w pliku html.

Wszystko będzie działać jak magia!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.