Como hospedar ícones de materiais offline?

106

Minhas desculpas se esta é uma pergunta muito simples, mas como você usa os ícones de materiais do Google sem um

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

?

Eu gostaria que meu aplicativo pudesse exibir os ícones mesmo quando o usuário não tivesse uma conexão com a Internet

Luke Tan
fonte
Este artigo explica para o Angular, o pensamento pode ser útil para alguém, thecodeframework.com/…
Gagan

Respostas:

112

Método 2. Guia do desenvolvedor de auto-hospedagem

Baixe a versão mais recente do github (ativos: arquivo zip), descompacte e copie a pasta iconfont, contendo os arquivos de ícones do material design, em seu projeto local - https://github.com/google/material-design-icons/ lançamentos

Você só precisa usar a pasta iconfont do arquivo: ela contém as fontes dos ícones nos diferentes formatos (para suporte a vários navegadores) e css padrão.

  • Substitua a fonte no atributo url de @ font-face, com o caminho relativo para a pasta iconfont em seu projeto local, (onde os arquivos de fonte estão localizados), por exemplo. 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>

Pacotes NPM / Bower

O Google oficialmente tem uma opção de dependência Bower e NPM - siga o Guia de ícones de materiais 1

Usando caramanchão :bower install material-design-icons --save

Usando o NPM :npm install material-design-icons --save

Ícones de materiais : como alternativa, consulte a fonte do ícone do material design e a estrutura CSS para hospedar os ícones automaticamente, em https://marella.me/material-icons/ de @marella


Nota

Parece que o Google tem o projeto em modo de baixa manutenção. O último lançamento foi, no momento da escrita, 3 anos atrás!

Existem vários problemas no GitHub em relação a isso, mas eu gostaria de consultar o comentário de @cyberalien sobre o problema, Is this project actively maintained? #951onde se refere a vários projetos da comunidade que se bifurcaram e continuam mantendo ícones de materiais.


bfmags
fonte
Como você faria isso para um aplicativo GAP de telefone em que você não teria um domínio?
Luke Tan
direcione sua pasta local no url de origem de @ font-face: url ("iconfont / MaterialIcons-Regular.woff2" - resposta atualizada
bfmags
Ei, você pode fazer uma resposta atualizada sobre isso. Baixei meus ícones mdl com npm.
TheBAST
1
Resolvido meu problema ... Só queria observar que só precisamos da iconfontpasta de todo o arquivo.
securecurve de
para este tipo de "mover recurso cdn para ser servido localmente" normalmente valeria a pena ter dados de tempo de resposta médio de mais de 3.000 solicitações ANTES e DEPOIS da mudança - você ficaria surpreso com a frequência com que não vale a pena, independentemente de seu esforço para alcançá-lo ...
Yordan Georgiev
37

Estou construindo para Angular 4/5 e frequentemente trabalho offline, então o seguinte funcionou para mim. Primeiro instale o NPM:

npm install material-design-icons --save

Em seguida, adicione o seguinte a styles.css:

@import '~material-design-icons/iconfont/material-icons.css';
Richard Bown
fonte
10
quando chamar "npm install" espere espere espere rsrsrs ... mas funciona depois de tanto tempo
Sergio Cabral
2
@SergioCabral Por sorte você fez o comentário sobre esperar, porque umas 5 vezes eu pensei que essa instalação não iria a lugar nenhum ... :)
Alfa Bravo
1
Obrigado Adorei Esta é a melhor solução Obrigado <3
Ali Jamal
Trabalhando para mim também ... :)
Aupr
3
alguma ideia de como adicionar ícones delineados?
wutzebaer
20

As abordagens superiores não funcionam para mim. Eu baixei os arquivos do github, mas o navegador não carregou as fontes.

O que fiz foi abrir o link da fonte do ícone do material:

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

e eu vi esta marcação:

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

Abro o link do URL da fonte woff https://fonts.gstatic.com/s/materialicons/v22/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2

e baixe o arquivo woff2.

Em seguida, substituo o caminho do arquivo woff2 pelo novo em 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');
}

Isso faz com que as coisas funcionem para mim.

Kaloyan Stamatov
fonte
Obrigado! Eu tive o mesmo problema e isso corrigiu para mim.
David
Resolvi meu problema com essa abordagem, mas depois encontrei outro repo git, de onde obtenho a versão adequada.
Kaloyan Stamatov
@ Kaloyan Stamatov seria bom compartilhar esse repo git .. já que muitas pessoas têm problemas com repo oficial desatualizado :)
Grashopper
@Grashopper, não tenho mais. Desculpe
Kaloyan Stamatov
1
mais atualizada em 2019, essa solução funcionou para mim também.
compt
17

Se você usar o projeto webpack, após

npm install material-design-icons --save

você só precisa

import materialIcons from 'material-design-icons/iconfont/material-icons.css'
Vladislav Kosovskikh
fonte
7
Eu não recomendo fazer isso, este repo é muito grande, use um desc. abaixo npmjs.com/package/material-design-icons-iconfont , também percebi que o navegador armazenará em cache fonts.googleapis.com/icon?family=Material+Icons e funcionará no modo offline. Checkout keemor.github.io/#
keemor
Eu sou novato em npm você pode elaborar import materialIcons from 'material-design-icons/iconfont/material-icons.css'. Estamos adicionando essa linha para onde? app.js ou em outro lugar. Estou usando o framework7 com Vue e tentei. Não funcionou para mim.
Suat Atan PhD
@SuatAtanPhD você adiciona essa importação como qualquer outra importação de estilo. Se você usa o webpack, você precisa de algo como style-loader, css-loader e pode colocar essa importação em qualquer lugar em seu código js, ​​por exemplo em index.js ou app.js etc.
Vladislav Kosovskikh
1
Essa abordagem é recomendada para a construção de um aplicativo web corporativo que pode funcionar em rede interna sem acesso à Internet
Yurii Bratchuk
13

Esta pode ser uma solução fácil


Obtenha este repositório que é uma bifurcação do repositório original publicado pelo Google.

Instale-o com bower ou npm

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

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

Importe o arquivo css em sua página HTML

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

ou

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

Teste: adicione um ícone dentro da tag do corpo do seu arquivo HTML

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

Se você vir o ícone do rosto, está bem.

Se não funcionar, tente adicionar isso ..como prefixo ao node_modulescaminho:

<link rel="stylesheet" href="../node_modules/material-design-icons-iconfont/dist/material-design-icons.css">
Md. Harun Or Rashid
fonte
Empregar o pacote material-design-icons-iconfont funciona mesmo com o mat-iconcomponente padrão do Angular . Portanto, a transição é perfeita.
Yuri
Esta é a solução que funcionou para mim, exceto que o link da folha de estilo em index.html não funcionou - eu tive que adicionar uma importação ao meu arquivo Styles.scss: @import"../node_modules/material-design-icons-iconfont/dist/material-design-icons.css"; Então meus ícones hospedados localmente ganharam vida
Ade
7

Minha receita tem três etapas:

  1. para instalar o pacote material-design-icons

    npm install material-design-icons
  2. para importar o arquivo material-icons.css para o arquivo / projeto .less ou .scss

    @import "~/node_modules/material-design-icons/iconfont/material-icons.css";
  3. para incluir o código recomendado no arquivo / projeto reactjs .js

    <i className='material-icons' style={{fontSize: '36px'}}>close</i>
romano
fonte
este pacote não existe mais
yehonatan yehezkel
com o angular cli, npm instale o material-design-icons e, em seguida, adicione css no angular.json -> architect->
build-
6

Use material-design-icons-iconfont

Divulgação completa, sou o autor deste pacote

O projeto de material-design-icons do Google está em baixa manutenção e desatualizado por um tempo . Há uma lacuna entre a versão em https://material.io/icons/ e a versão em material-design-icons .

Criei material-design-icons-iconfont para resolver esses problemas principais:

  • material-design-icons jams npm install- todos os arquivos svg / xml / ... irrelevantes foram removidos
  • Os arquivos de fonte estão sempre atualizados direto do Google FontsCDN
  • Suporte para scss

Instalar via npm

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

Depende de como você compacta seu aplicativo da web ( webpack/ gulp/ bower/ ...), você precisará importar o arquivo .css/ .scss(e pode alterar o caminho relativo das fontes)


Importar usando SCSS

Importe em um de seus arquivos sass

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

Mais tarde, faça referência ao ícone <i class="material-icons">+ id do ícone +</i>

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

Página de demonstração

Ele vem com uma página de demonstração leve para auxiliar na busca e colagem de fontes

imagem

Jossef Harush
fonte
1
Estou tendo um problema com o PWA. Os ícones funcionam enquanto você está no navegador, mas depois que você adiciona um atalho na tela inicial e executa, os ícones do aplicativo não são exibidos.
Wlada
4

Tentei compilar tudo o que precisa ser feito para ícones de auto-hospedagem em minha resposta. Você precisa seguir estas 4 etapas simples.

  1. Abra a pasta iconfont do repositório materialize

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

  2. Baixe esses três arquivos de ícones ->

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

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

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

    Nota- Após o download, você pode renomeá-lo como quiser.

  3. Agora, vá para seu CSS e adicione este código

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


Nota: O endereço fornecido em src: url (...) deve ser relativo ao 'Arquivo CSS' e não ao arquivo index.html. Por exemplo, pode ser src: url (../ myicons / MaterialIcons-Regular.woff2)


  1. Você está pronto para usar agora e aqui está como isso pode ser feito em HTML

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

Clique aqui para ver todos os ícones que podem ser usados.

abhinav1602
fonte
404 no seu link
Welyngton Dal Prá 04/08
1
@ WelyngtonDalPrá Obrigado. corrigido
abhinav1602
3

Depois de fazer isso npm install material-design-icons, adicione ao seu arquivo CSS principal:

@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';
}
Manolo Alvarez
fonte
3

Com cli angular

npm install angular-material-icons --save

ou

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

material-design-icons-iconfont é a versão atualizada mais recente dos ícones. angular-material-icons não é atualizado por muito tempo

Aguarde, aguarde, aguarde a instalação ser concluída e adicione-o ao angular.json -> projetos -> arquiteto -> estilos

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

ou se você instalou material-desing-icons-iconfont,

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

Atualização de 2019 aqui:

Para hospedar seus ícones de materiais, os regulares, arredondados, afiados, todas as variantes. Vá buscá-los neste repositório: https://github.com/petergng/material-icon-font

Por algum motivo, não sei por que essas fontes não são facilmente acessíveis nos repositórios do Google.

Mas aqui está.

Depois de baixar o pacote, vá para a pasta bin e você verá as quatro variantes. Claro, cabe a você usar qualquer um deles.

Para usá-los, crie um arquivo css e

  1. Gere uma fonte para cada variante necessária:
@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');
}

O urllink para onde os ícones estão localizados em seu projeto.

  1. Agora vamos registrar as classes de ícones:
.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;
}

Isso fará com que ambas as classes .material-icons-outlined, e .material-iconsusem os mesmos padrões. Se você quiser usar .material-icons-sharp, basta anexar aos nomes das duas classes.

  1. Por fim, vamos inserir a face da fonte que você obteve na etapa 1.
.material-icons {
    font-family: 'Material Icons';
}
.material-icons-outlined {
    font-family: 'Material Icons Outline';
}

Novamente, para usar mais variantes, como Sharp, basta adicionar seu bloco como os dois acima.

Uma vez feito ... vá para o seu html e use os ícones recém-criados.

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

Em http://materialize.com/icons.html as informações do cabeçalho de estilo que você inclui na página, você pode ir para o hiperlink real e fazer cópias localizadas para usar ícones offline.

Veja como.NB: Você fará o download de dois arquivos em todos icon.css e somefile.woff .

  1. Vá para o seguinte URL, conforme exigido no cabeçalho

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

Salve a página como nome_do_arquivo.css. O padrão é icon.css

  1. Procure por uma linha como esta

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

  1. Visite o URL que tem .woff terminando

https://fonts.gstatic.com/s/materialicons/v22/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2. Seu navegador fará o download automaticamente. Salve-o em sua pasta CSS.

  1. Agora você deve ter os dois arquivos icon.css e 2fcrYFNa .... mY.wof22 , salve-os em seu css. Agora faça edições no local do cabeçalho css para o icon.css em seus diretórios. Apenas certifique-se de que o arquivo .woff2 esteja sempre na mesma pasta que o icon.css. Sinta-se à vontade para editar os nomes longos dos arquivos.

Joseph Quaye
fonte
2

O título da pergunta pergunta como hospedar ícones de material offline, mas o corpo esclarece que o objetivo é usar os ícones de material offline (grifo meu) .

Usar sua própria cópia dos arquivos de ícones de materiais é uma abordagem / implementação válida. Outro, para aqueles que podem usar um prestador de serviço, é deixar que ele cuide disso. Dessa forma, você não terá o incômodo de obter uma cópia e mantê-la atualizada.

Por exemplo, gere um service worker usando o Workbox , usando a abordagem mais simples de executar workbox-cli e aceitando os padrões, depois anexe o seguinte texto ao service worker gerado:

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

Você pode verificar se ele foi armazenado em cache no Chrome usando F12> Aplicativo> Armazenamento> IndexedDB e procurar por uma entrada com googleapis no nome.

Joseph Simpson
fonte
Eu fiz isso funcionar também com algumas pequenas mudanças. Mudei "workboxSW" para "workbox". Mudei "roteador" para "roteamento" e adicionei este código ao meu arquivo sw_config.js que é gerado ao usar o assistente cli da caixa de trabalho.
Jason Allshorn de
2

Em 2020, minha abordagem é usar o pacote material-icons-font . Ele simplifica o uso do pacote material-design-icons do Google e do material-design-icons-iconfont baseado na comunidade .

  1. Instale o pacote. npm install material-icons-font --save

  2. Adicione o caminho do arquivo CSS do pacote à propriedade de estilo do arquivo angular.json do seu projeto.

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

  3. Se estiver usando SCSS, copie o conteúdo abaixo para a parte superior do seu arquivo 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. Use os ícones do arquivo HTML do seu projeto.

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

Ícones de @ angular / material tendem a quebrar durante o desenvolvimento offline. Adicionar o pacote material-icons-font em conjunto com @ angular / material permite que você use a tag enquanto desenvolve offline.

HelloWorldPeace
fonte
0

Instale o pacote npm

npm install material-design-icons --save

Coloque o caminho do arquivo css para o arquivo styles.css

@import "../node_modules/material-design-icons-iconfont/dist/material-design-icons.css";
Ahmet Arslan
fonte
0

O método Kaloyan Stamatov é o melhor. Primeiro acesse https://fonts.googleapis.com/icon?family=Material+Icons . e copie o arquivo css. o conteúdo se parece com este

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

Cole a fonte da fonte no navegador para baixar o arquivo woff2 https://fonts.gstatic.com/s/materialicons/v37/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 Em seguida, substitua o arquivo na fonte original. Você pode renomeá-lo se quiser. Não há necessidade de baixar o arquivo de 60 MB do github. Simplesmente morto Meu código se parece com isto

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

enquanto materialIcon.woff2 é o arquivo woff2 baixado e substituído.

chris_wire
fonte
1
Não funciona em todos os navegadores, consulte esta resposta do SO para mais informações: stackoverflow.com/questions/11002820/…
xaviert
-1
npm install material-design-icons

e

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

funcionou também para mim com Angular Material 8

lado105
fonte
-1

Adicionado isso à configuração da web e o erro foi embora

<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>
tfa
fonte
-1

A propósito, há um vídeo disponível no youtube com instruções passo a passo.

https://youtu.be/7j6eOkhISzk

  1. Estas são as etapas. Baixe o pacote do ícone materialize em https://github.com/google/material-design-icons/releases

  2. Copie a pasta icon-font e renomeie-a como icons.

  3. Abra o arquivo materialize.css e atualize os seguintes caminhos:

uma. de url (MaterialIcons-Regular.eot) para url (../ fonts / MaterialIcons-Regular.eot) b. do formato url (MaterialIcons-Regular.woff2) ('woff2') para o formato url (../ fonts / MaterialIcons-Regular.woff2) ('woff2') c. do formato url (MaterialIcons-Regular.woff) ('woff') para o formato url (../ fonts / MaterialIcons-Regular.woff) ('woff') d. do formato url (MaterialIcons-Regular.ttf) ('truetype') para o formato url (../ fonts / MaterialIcons-Regular.ttf) ('truetype')

  1. Copie o materialize-icon.css para sua pasta css e faça referência a ele em seu arquivo html.

Tudo funcionará como mágica!

SicMundus
fonte