FontAwesome 5替换旧版本后缺失fa-brands.svg的问题求助
解决FontAwesome 5中fa-brands.svg找不到的问题
你这是不小心混用了FontAwesome的两种不同使用方式,这才是问题的核心。咱们一步步梳理解决:
先理清核心矛盾
你下载的是Web Fonts + CSS版本的FontAwesome 5,这个版本靠加载woff/woff2这类字体文件渲染图标,根本不需要svg文件;而你后来复制的fa-brands.svg属于SVG Sprite版本的资源,两种方式完全不兼容,所以就算复制了也会报错。
方案1:继续用Web Fonts + CSS方式(和你当前的引入逻辑匹配,更省心)
按下面的步骤检查调整:
- 确认
fonts文件夹内容:Web Fonts包的fonts文件夹里应该有fa-brands-400.woff、fa-brands-400.woff2这类文件,没有svg是正常的——因为web字体方式本来就不用它。如果你的fonts文件夹里缺这些品牌字体文件,说明下载的包不完整,重新下载一次即可。 - 检查CSS的字体路径:打开
fontawesome.min.css,找到@font-face里关于fa-brands-400的定义,确认字体文件的相对路径是对的。比如你的目录结构是:
那css里的路径应该是练习文件夹/ ├─ css/ │ └─ fontawesome.min.css └─ fonts/ ├─ fa-brands-400.woff2 ├─ fa-solid-900.woff2 └─ ...其他字体文件../fonts/fa-brands-400.woff2,路径错了的话浏览器找不到字体,可能会误报找不到svg(实际是字体加载失败)。 - 确认图标类名正确:FontAwesome 5里品牌图标必须用
fab前缀,比如<i class="fab fa-github"></i>,旧版本的fa前缀已经不能用于品牌图标了。
方案2:切换到SVG Sprite方式(如果你确实想用svg文件)
要是铁了心要用svg sprite,就得彻底调整引入逻辑:
- 删掉之前引入的
fontawesome.min.css(web字体版),svg sprite方式不需要它。 - 把
fa-brands.svg放在合适的目录(比如练习文件夹根目录),然后用以下方式调用图标:<svg width="1em" height="1em" fill="currentColor"> <use xlink:href="fa-brands.svg#fa-github"></use> </svg> - 想简化调用的话,可以引入FontAwesome的svg核心js文件,这样就能像用类名一样调用svg图标,但要确保js和svg文件的路径都正确。
最后排查小细节
- 打开浏览器的Network标签,刷新页面,看看
fa-brands相关资源是否返回404,这能快速定位路径问题。 - 清除浏览器缓存,有时候旧缓存会搞事情,按
Ctrl+Shift+R强制刷新试试。
内容的提问来源于stack exchange,提问作者RoCkDevstack
相关产品推荐
相关产品推荐

