Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

angular2-cli include custom fonts

I am trying to include some custom fonts in my project with no success.

NOTE: I am using angular-cli: [email protected]

  1. I put the fonts in the folder

    src/assets/fonts/Roboto-Regular.tff

  2. I add in src/styles.css

    @font-face {   font-family: "Roboto-Regular";   src: url("./assets/fonts/Roboto-Regular.tff"); } 
  3. I use it in a component .scss

    font-family: "Roboto-Regular"; 
  4. I get 404 error:

    Cannot find module "./assets/fonts/Roboto-Regular.tff" client?93b6:80 ./~/css-loader?sourcemap!./~/postcss-loader!./src/styles.css Module not found: Error: Can't resolve './assets/fonts/Roboto-Regular.tff' in 'D:\Work\Blah\angular\BlahFrontEnd\src' resolve './assets/fonts/Roboto-Regular.tff' in 'D:\Work\Blah\angular\BlahFrontEnd\src'   using description file: D:\Work\Blah\angular\BlahFrontEnd\package.json (relative path: ./src)     Field 'browser' doesn't contain a valid alias configuration   after using description file: D:\Work\Blah\angular\BlahFrontEnd\package.json (relative path: ./src)     using description file: D:\Work\Blah\angular\BlahFrontEnd\package.json (relative path: ./src/assets/fonts/Roboto-Regular.tff)       as directory         D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff doesn't exist       no extension         Field 'browser' doesn't contain a valid alias configuration         D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff doesn't exist       .ts         Field 'browser' doesn't contain a valid alias configuration         D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff.ts doesn't exist       .js         Field 'browser' doesn't contain a valid alias configuration         D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff.js doesn't exist [D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff] [D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff] [D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff.ts] [D:\Work\Blah\angular\BlahFrontEnd\src\assets\fonts\Roboto-Regular.tff.js]  @ ./~/css-loader?sourcemap!./~/postcss-loader!./src/styles.css 6:793-837  @ ./src/styles.css  @ multi styles 
    1. If I add the font-face definition in app.component.scss I get 404 error as well

      jquery.js:2 GET http://localhost:4200/assets/fonts/Roboto-Regular.tff 404 

Any ideas on how to include my Roboto-Regular.tff font?

like image 941
mp3por Avatar asked Nov 30 '16 09:11

mp3por


1 Answers

For the people arriving here by searching:

Install with npm:

npm install roboto-fontface --save

Add to styles in .angular-cli.json (apps[0].styles):

"styles": [     "styles.css",     "../node_modules/roboto-fontface/css/roboto/roboto-fontface.css" ], 

That's all!

Edit: since Angular 6 this file is called angular.json instead of angular-cli.json. Adding fonts still works the same way as before.

like image 54
Gideon Avatar answered Oct 06 '22 01:10

Gideon