字体在Firefox中不起作用

字体在Firefox中不起作用,firefox,twitter-bootstrap,less,font-awesome,Firefox,Twitter Bootstrap,Less,Font Awesome,我正在使用引导,我通过Less添加了字体,覆盖了字形图标。图标在chrome中显示正常,但在Firefox中我只看到框 这就是我的目录的样子 -- Project -- js -- css -- less -- font-awesome -- css -- font -- less 我在Project>less>boostrap.less文件中修改的全部内容是: @import "sprites.less"; //for this line @imp

我正在使用引导,我通过Less添加了字体,覆盖了字形图标。图标在chrome中显示正常,但在Firefox中我只看到框

这就是我的目录的样子

-- Project
  -- js
  -- css
  -- less
  -- font-awesome
    -- css
    -- font
    -- less
我在
Project>less>boostrap.less文件中修改的全部内容是:

@import "sprites.less";

//for this line

@import "../font-awesome/less/font-awesome.less";
正如我在Chrome中所说的,Firefox可以正常工作,但出于某些原因,Firefox只显示方框。

通过CDN(或任何跨域字体请求)定制的web字体在FirefoxInternet Explorer中不起作用(根据规范,正确如此),尽管它们在基于Webkit的浏览器中起作用(不正确)

您可以通过向页面添加标题来解决此问题

阿帕奇

<FilesMatch ".(eot|ttf|otf|woff)">
    Header set Access-Control-Allow-Origin "*"
</FilesMatch>

信用证:

我对if语句有异议,因为我没有$filename变量

但我确实通过以下方法得到了类似的结果:

location ~ /\.(eot|otf|ttf|woff)$ {
        add_header Access-Control-Allow-Origin *;
    }

如果你和我一样,修改web.config文件是不允许触摸的

尝试将所有字体文件(.eot、.ttf等)存储到它们自己的本地文件夹中,并在本地链接到它们,而不是链接到CDN。每次都在IE和FF中为我澄清

@font-face{ font-family:'FontAwesome'; src:url('../_fonts/fontawesome-webfont.eot'); }

如果你在S3上托管字体,你必须在bucket上。通过AWS管理控制台,编辑bucket的属性,并在权限下单击“添加CORS配置”。在我的情况下,如果我保留默认配置,它仍然无法工作,因此我将其更改为:

<CORSConfiguration>
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
    </CORSRule>
</CORSConfiguration>

*
得到

如果你想用一种简单快捷的方法让字体变得很棒,试试使用。它是免费的,由CloudFlare提供动力。CORS得到了开箱即用的支持

试着这样做:

<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.min.css" media="all" rel="stylesheet" type="text/css">

按照premjg的建议使用CDN是除自己托管之外侵入性最小的方法。fontawesome的最新版本,例如


作为一个小提示,noscript会自动阻止对CDN的请求,除非被列入白名单,并且它不会提示您将CDN列入白名单,除非您的页面也从同一域请求JS文件

如果你正在使用wordpress,并且你认为你已经尝试了所有方法,那么看看你是否安装了一个字体很棒的插件。禁用插件并在Firefox中刷新


这就是我的解决方案-插件的旧版本font awesome覆盖了我试图手动更新的文件。

在fonts文件夹中,请上传以下文件

FontAwesome.otf
FONTWEBFONT.eot
FONTWEBFONT.svg
字体:webfont.ttf
FONTWEBFONT.woff
--------------重要图标文件-------------------
字形半身人规则。eot
glyphons halflings regular.svg
字形半身人规则。ttf
字形半身人普通。woff

请上传以下文件,然后在头文件中链接font-awesome.min.css

以下是正确文件的链接:

您正在使用CDN吗?看看CORS。你是否删除了导入的“精灵.更少”?是的,用@ShankarCabus说的。您将希望了解如何将CORS与您正在使用的服务器一起使用。您可能需要使用
Access Control Allow Origin
设置一些标题,使其成为
*
或任何域。下面是我找到的一个很好的链接,介绍了如何实现这一点:我正在使用Nginx 1.4,这是比
if
语句更好的方法。有针对IIS的解决方案吗?我不明白。如果文件是从远程CDN加载的,那么如何更改Apache中的头文件?(我知道OP是在本地加载的,但你似乎在谈论CDN)设置更简单、更快:“使用you method@Dustin Brownell,它在html项目中不在本地工作。@Blackersoul:除非本地html项目通过某种服务器提供服务,否则它不会工作,在
http://localhost
正如上面的评论所说。除非您的项目通过某种服务器提供服务,否则它不会显示。当我在本地部署我的项目时,图标就出现了,就像在chrome.Premjg上一样,它对我来说非常有效——而摆弄httpd.conf并不能解决我的问题。这的确是最简单的解决办法!这应该是选择的答案,因为它在商业项目中的许多其他情况下(我正在与jekyll一起构建我的网站),这是安全性很重要的(例如银行网站),除非您希望客户的浏览器将推荐人发送到第三方网站,否则您根本不想使用CDN。@FirstLast-我还原了您的编辑,因为无条件强制使用“htpps”协议并不总是一个好主意(了解什么是“impicit协议URL”)。
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.min.css" media="all" rel="stylesheet" type="text/css">