Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ng-cli 6 and font awesome icons not working

I am using font-awesome 4.70, angular 6.0.8, and cli 6.0.8(full versioning below) I am trying to replace our existing webpack process with the cli's "ng build". I have run into an issue with font awesome's icons not showing up. I have seen similar issues in the past with older versions but I havent found a solution yet.

I have the fonts hooked up in my assets

assets:[
    "./node_modules/font-awesome/fonts",
    //other assets
]

And I am including the css in the styles portion of my angula.json

styles:[
    "./node_modules/font-awesome/css/font-awesome.css",
    //other styles
]

I am not using "ng serve", I am only using the build command to transpile my code. In the browser I am getting these errors.

GET http://localhost:29380/fontawesome-webfont.woff2?v=4.7.0 404 (Not Found)

GET http://localhost:29380/fontawesome-webfont.woff?v=4.7.0 404 (Not Found)

GET http://localhost:29380/fontawesome-webfont.ttf?v=4.7.0 404 (Not Found)

I see the assests in the output directory but for some reason they are not available and I am getting 404s.

enter image description here

like image 376
Jake Avatar asked Jun 19 '18 18:06

Jake


People also ask

How do I fix Font Awesome icons not showing?

Make sure you're using the latest and greatest by updating your CDN code reference, updating your Font Awesome package via npm, or downloading a fresh copy of Font Awesome. You can check with version an icon was added to on its detail page (e.g. question-circle was added in Verion 1 but last updated in 5.0. 0).

Why Font Awesome is not working in angular?

If you get the above error that means you are using older version of angular fontawesome icons. Then use the legacy icon library from @fortawesome/fontawesome-svg-core package. It's deprecated now, so better update your @fortawesome/angular-fontawesome package, to use latest FaIconLibrary class.


2 Answers

I also went through this problem and decided as follows. In the angular.json file in the build > assets section I included the path of the fonts to be copied:

{
     "glob": "**/*",
     "input": "node_modules/font-awesome/fonts",
     "output": "assets/fonts"
}

And in the build > styles section I've included the font-awesome path in the node_modules folder:

{
    "input": "node_modules/font-awesome/scss/font-awesome.scss"
}

And finally, in the global scss-style file I've included these instructions:

$fa-font-path: "../assets/fonts" !default;
i[class^="fa-"], ion-icon[class^="fa-"] {
    font-family: "FontAwesome" !important;
}

Note that in the global scss-style file I also include the ion-icon, in case you are using Ionic.

I hope this solves your problem.

like image 172
Walter Gandarella Avatar answered Oct 13 '22 03:10

Walter Gandarella


I had the same issue and follow the instruction!! it works,

step 1 : Remove fortawesome:registry and authToken (if you have)

npm config delete "@fontawesome:registry"
npm config delete "//npm.fontawesome.com/:_authToken"

step 2:

after you need to install the package

npm install --save-dev @fontawesome/fontawesome-free

step 3:

in your angular.json add

"node_modules/@fontawesome/fontawesome-free/js/all.js"
"node_modules/@fontawesome/fontawesome-free/css/all.css"

add js and css file in right block (scripts/styles)

Note : add it in both tests & build blocks

like image 27
Nithin mm Avatar answered Oct 13 '22 04:10

Nithin mm