带有引导程序 3.3.4 的字形图标在 rails 4.2.1 中不起作用

Posted

技术标签:

【中文标题】带有引导程序 3.3.4 的字形图标在 rails 4.2.1 中不起作用【英文标题】:Glyphicons with bootstrap 3.3.4 not working in rails 4.2.1 【发布时间】:2015-06-08 00:00:42 【问题描述】:

我有使用 bootstrap 3.3.x 和 glyphicons 的 rails 4.2.1 应用程序。我不能使用 boostrap-sass 或任何其他 gem 来集成 bootstrap 和 rails,因为原来的 bootstrap.css 已经被设计师修改了。我还有一个 custom.css 文件。

我已将所有 css 文件(应用程序、引导程序和自定义)重命名为使用 scss 格式。目前,引导 css 工作正常,但未显示字形图标。我已将 bootstrap.scss 中的字体代码替换为

@font-face 
  font-family: 'Glyphicons Halflings';
  src: url(font-path('glyphicons-halflings-regular.eot'));
  src: url(font-path('glyphicons-halflings-regular.eot?#iefix')) format('embedded-opentype');
  src: url(font-path('glyphicons-halflings-regular.woff2')) format('woff2');
  src: url(font-path('glyphicons-halflings-regular.woff')) format('woff');
  src: url(font-path('glyphicons-halflings-regular.ttf')) format('truetype');
  src: url(font-path('glyphicons-halflings-regular.svg#glyphicons_halflingsregular')) format('svg');

以前(fontawesome + rails 4.0.1 not working),我确实将 rails 中的 scss 文件配置为使用不同的字体,并且确实有效。我在当前的 rails 应用程序中尝试了相同的方法,但无法弄清楚它失败的原因。这里(https://github.com/prasadsurase/rails-fonts.git) 是一个用于检查问题的示例 Rails 应用程序。

感谢您的任何建议。

【问题讨论】:

【参考方案1】:

您的 SCSS 有错误。 @font-face 应声明如下:

@font-face 
  font-family: 'Glyphicons Halflings';
  src: url(font-path('glyphicons-halflings-regular.eot'));
  src: url(font-path('glyphicons-halflings-regular.eot?#iefix')) format('embedded-opentype'),
       url(font-path('glyphicons-halflings-regular.woff2')) format('woff2'),
       url(font-path('glyphicons-halflings-regular.woff')) format('woff'),
       url(font-path('glyphicons-halflings-regular.ttf')) format('truetype'),
       url(font-path('glyphicons-halflings-regular.svg#glyphicons_halflingsregular')) format('svg');

请注意,恰好有 2 个src 规范。第一个src 有一个url(),第二个src 有多个url() 声明,用逗号分隔,而不是分号。

【讨论】:

如果我们替换 ;正如您所指定的那样,在“ src”之后得到“无效的CSS:预期的“;”,是“:url(font-path ...”)错误。 我克隆了您的存储库并进行了此更改,它解决了问题。很确定它有效。 :) 你是在复制我的回答中的@font-face 代码吗? 感谢您的回答。被困了几个小时。 您能否添加 cmets 以说明为什么第二个和以后的 'src' 与第一个分开。为什么它们与第一个分开分组?谢谢。 我怀疑src 声明的这种特殊顺序是为了确保与各种浏览器的兼容性。我的答案基于 Bootstrap 源代码,可在此处找到:github.com/twbs/bootstrap/blob/v3.3.4/less/glyphicons.less#L11

以上是关于带有引导程序 3.3.4 的字形图标在 rails 4.2.1 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 IIS 上托管后,引导字形图标显示为问号

跨域中的引导字形图标不起作用

引导字形图标不起作用

是否可以在 Form::submit(' ') 中放置一个引导字形图标 - Laravel

动画引导字形图标

如何仅使用引导图标?