Bootstrap 3图标无法使用

375

我下载了Bootstrap 3.0,但是无法使用Glyphicons。我收到了一种“E003”错误。有什么想法为什么会发生这种情况?我尝试了本地和在线两种方式,但还是遇到了同样的问题。


1
你在哪里遇到了错误? - Daniel A. White
1
无论我在哪里插入图标...这是我得到的错误。我所做的唯一一件事就是从网站定制器下载bootstrap,并替换以前的文件(虽然字体文件的名称不同)。现在它们不起作用了...我也尝试了几个浏览器,火狐,谷歌,IE,都是一样的...http://i.imgur.com/2f474kX.jpg - scooterlord
2
我今天刚下载了最新版本,但如果我使用最小化的CSS文件,字形不会显示。如果我使用“正常”的bootstrap.css一切都正常。 - Antonio Sesto
1
截至2015年6月23日,包括最新版本v3.3.5的maxcdn,您没有错误。 - user4988789
1
我发现我在白色背景上使用字形图标并期望它们显示出来。使用<i style="color:black" class="glyphicon glyphicon-new-window"></i>解决了这个问题。 - Vijay Vepakomma
为了帮助人们回答你的问题,你需要更具体地描述错误和你的代码。请[编辑]您的帖子以包含[mcve]和从中获得的确切错误(最好使用复制+粘贴以避免转录错误)。 - Toby Speight
48个回答

481

我遇到了同样的问题,除了在本页面的隐藏注释中找不到任何信息外,找不到其他信息。根据Chrome的显示,我的字体文件加载得很好,但图标显示不正确。我将其作为答案进行回复,希望能帮助其他人。

从Bootstrap 3的自定义工具下载的字体文件有问题。要获取正确的字体,请转到Bootstrap主页并下载完整的.zip文件。从中提取四个字体文件到您的字体目录,并且一切应该正常工作。


应该很快就会修复,如果还没有的话。Bootstrap团队已经意识到了这个问题。https://github.com/twbs/bootstrap/issues/9925。Bootstrap最近更新了他们的Glyphicons以包含新的图标,我相信他们忘记更新他们的自定义文件了。 - Gavin
6
更换getbootstrap.com首页中bootstrap-3.0.0所包含的字体文件是有效的。感谢这个提示! - Michal Kopec
11
正确答案!自定义器中的字体文件已损坏! - Charles Ingalls
2
我想加入我的“我也是”回复,并说在浪费了几个小时的努力后,几乎要放弃我的职业生涯,我找到了这个答案,现在我的glyphicons又可以工作了。谢谢! - dohpaz42
2
我迫不及待地想成为那些成功的人之一,但现在尽管几乎尝试了 Stack 中的每一个解决方案和答案,我仍然无法看到图标。我甚至尝试启动一个全新的 MVC 5 应用程序,并使用 Nuget 安装最新版本3.3.7的bootstrap,安装所有文件夹都正确,浏览器调试工具中也没有任何显示404或任何告诉我的字体未加载,而且我可以告诉你,span 的代码是完美的,所以我的问题在哪里。老实说,我不知道。我测试了所有的浏览器,都没有显示图标。 - Marc Roussel
显示剩余12条评论

241

读者注意:务必阅读@user2261073的评论@Jeff的答案,了解自定义器中的一个错误,这可能是您问题的原因。


字体文件未能正确加载。请检查文件是否在其预期位置。

@font-face {
  font-family: 'Glyphicons Halflings';
  src: url('../fonts/glyphicons-halflings-regular.eot');
  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
}

正如丹尼尔所指出的那样,这可能是一个 mimetype 问题。Chrome 的开发者工具可以在网络选项卡中显示下载的字体:

chrome network tab font download


5
确保正确注册了MIME类型。 - Daniel A. White
4
尽管在我下载bootstrap.zip文件时应该已经有文件了,但我仍然进行了双重检查,一切都就位了。我该如何检查MIME类型的注册(=?) - scooterlord
1
@user2261073,*.eot* 文件不应该被加载,除非你正在使用Internet Explorer。 - user247702
46
看起来我找到了问题所在。Bootstrap定制器似乎发送的字体大小与整个Bootstrap包内附的示例中的字体大小不同。我替换了文件,现在一切正常了。这很可能是Bootstrap定制器的一个漏洞?谁知道呢。我可以在某个地方报告这个问题,以便他们调查吗? - scooterlord
2
@user2261073 你可以在 GitHub 项目上报告此问题。似乎已经有一个活跃的错误报告:https://github.com/twbs/bootstrap/issues/10008 - user247702
显示剩余11条评论

77

就我的情况而言,我在移动浏览器上看不到字形图标,并且 glyphicons-halflings-regular.woff 会返回404错误。

看起来有一些关于woff MIME类型的混淆,不同的浏览器接受多种不同的MIME类型,但是W3C表示

application/font-woff

编辑:经过测试,以下的woff MIME类型现在适用于所有浏览器:

application/x-font-woff

编辑:目前Bootstrap最新版本(3.3.5)使用与.woff相同初始结果的.woff2字体,W3C仍在 定义规范,但当前MIME类型似乎为:

application/font-woff2

17
这指引我朝着正确的方向前进,但同时在Chrome中也给了我另一个警告... MIME类型实际上应该是:application/x-font-woff,然后Firefox和Chrome终于都很开心 :) - ghiscoding
谢谢,那确实是我的问题所在。本地一切正常,但一旦发布到Azure上,.woff类型就成了唯一的问题。 - Kevin Cloet

59

-如果你按照最高评分的答案并且仍然无法正常工作

Font文件夹必须与您的CSS文件夹在同一级别。修复bootstrap.css中的路径将不起作用

Bootstrap.css必须像这样精确地导航到Fonts文件夹中:

@font-face {
    font-family: 'Glyphicons Halflings';

    src: url('../fonts/glyphicons-halflings-regular.eot');
    src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}

3
我认为在这种情况下,70%的Glyphicon无法正常工作,回答很好,我经常将Bootstrap CSS文件放在css / bootstrap中。只需将它们移到css中,一切都能正常工作。 - Andiana
1
好的,对我来说路径看起来完全按照你的指示,但对我仍然不起作用。下载源代码包并替换字体文件也不行。我必须补充说明一些图标可以加载,而另一些则不能。你能帮忙吗? - Darth Coder
字体文件夹在哪里?我没有。 - Swift
同时,css文件夹必须是包含HTML文件的文件夹的子文件夹。因此,至少需要有1)您的HTML文件,2)名为css的子文件夹中的CSS文件,以及3)名为fonts的子文件夹中的字体文件。 - Kivi Shapiro
这在从CDN加载时没有任何影响;只有在本地加载时才会有影响。将链接添加到//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css对我很有帮助。 - James Wilkins
最终,我发布的链接并没有完全起作用,因为v3的新版本有更多的图标。最终,我从源代码(https://github.com/twbs/bootstrap/releases/tag/v3.4.1)下载了它们,并将它们放在正确的位置(如此答案中所述)。但是,你可能还需要添加一个额外的`.woff2`文件。 - James Wilkins

55
如果其他解决方案无法解决问题,您可以尝试从外部来源导入Glyphicons而不是完全依赖Bootstrap完成所有操作。要执行此操作: 您可以在HTML中进行如下操作:
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css" rel="stylesheet">

或者 CSS:

@import url("//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css")

感谢edsiofi在这个主题中的贡献:Bootstrap 3字体图标CDN


35

如果有人使用的是Bootstrap >= v4.0并来到这里:不再支持glyphicon

发布说明中相关部分如下:

删除Glyphicons图标字体。如果需要图标,可以选择以下选项:

Glyphicons的上游版本

Octicons

Font Awesome

来源:https://v4-alpha.getbootstrap.com/migration/#components

如果想要使用glyphicons,则需要单独下载。

我个人尝试了Font Awesome,它非常好用。添加图标的方式与glyphicons类似:

<i class="fas fa-chess"></i>

22

我在翻看我的旧问题,因为一直到现在被认为是正确答案的,在评论中由我给出,我认为我也应该得到相应的认可。

问题出在从Bootstrap的定制工具下载的Glyphicon字体文件与从Bootstrap首页重定向处下载的文件不同。那些按照预期工作的文件是可以从以下链接下载的:

http://getbootstrap.com/getting-started/#download

如果有人遇到旧的坏的自定义文件问题,应该从上面的链接中覆盖字体。


自定义器问题早已经修复。在当前的Bootstrap中,这已经不再是一个问题了。 - cvrebert
1
现在,他们可能遇到图标字体位置问题,即使图标字体路径的工作方式已经有文档记录... - cvrebert
有一些事情需要检查这个问题。检查您站点在IIS中的MIME类型。它必须存在于上述问题之一中...
  • application/vnd.ms-fontobject - .eot
  • application/x-font-woff - .woff
  • application/x-font-ttf - .ttf
  • image/svg+xml - .svg
- Pedram
我的字形图标在除IE外的所有浏览器中都可以正常工作。IE在第一次加载时会显示它们,但按F5刷新后就不再显示了。DOM是正确的,应用的CSS也是正确的。我找不到解决方案。有什么想法吗? - Skystrider
1
我可以勾选/取消勾选设置内容为特定字符的“content: "\e080"”CSS。这样做时,span的大小从有到无再到有会发生实际变化。所以这真的感觉像是IE的一个bug - 无法绘制该字符。 - Skystrider

19

你可以添加这行代码,然后就完成了。

<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css" rel="stylesheet">

谢谢。


1
这里缺少许多在v3后期版本中添加的新图标。 - James Wilkins
1
完美的答案,至少对我来说是这样。 - thonnor

18

Azure网站缺少woff MIME配置。您必须将以下条目添加到web.config文件中:

<configuration>
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension="woff" mimeType="application/font-woff" />
        </staticContent>
    </system.webServer>
</configuration> 

"woff、woff2 和 ttf" 扩展名是什么? - Kiquenet

16

如@Stijn所述,从Nuget安装此软件包时,Bootstrap.css的默认位置不正确。

将此部分更改为以下内容:

@font-face {
  font-family: 'Glyphicons Halflings';
  src: url('Content/fonts/glyphicons-halflings-regular.eot');
  src: url('Content/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded- opentype'), url('Content/fonts/glyphicons-halflings-regular.woff') format('woff'), url('Content/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('Content/fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
}

1
如果您正在使用LESS,您可以在less文件中覆盖它并更改URL以匹配从生成的CSS文件或根目录开始的相对路径。 - Chris Searles
这在最新版本的Bootstrap中不再是问题。请更新! - dball

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接