2012-03-07 84 views
1

在CargoCollective平台上运行网站。@ font-face:Firefox要求用户允许下载字体文件

指定@字体面如下:

@font-face { font-family: 'Meta'; 
       src: url('https://www.sugarsync.com/pf/D7160824_3237110_68577?directDownload=true') format('embedded-opentype'), 
         url('https://www.sugarsync.com/pf/D7160824_3237110_68571?directDownload=true') format('truetype'), 
         url('https://www.sugarsync.com/pf/D7160824_3237110_68573?directDownload=true') format('woff'), 
         url('https://www.sugarsync.com/pf/D7160824_3237110_68579?directDownload=true#Meta') format('svg'); 
       font-weight: normal; 
       text-shadow: 0 1px 0 rgba(255,255,255,0.01); 
       } 

作品在Chrome和Safari,但不能在Firefox。应该在IE中工作,因为它的顶部有EOT,URL包含'?'使IE认为交替是一个查询字符串,但我没有办法测试,因为我在Mac上。

问题是,在Firefox(10.0.2,Mac)中,所请求的字体似乎需要授权才能下载字体,因此它永远不会下载它,并且我将显示默认serif,它会更改外观显着。

造型也宣布在CSS,像往常一样,用正确的层次结构,例如:

body { 
     font-family: Meta, Helvetica, Arial, sans-serif; 
     } 

不知道为什么,这是行不通的,坦率地说。我听说Firefox说通常会下载列表中的最后一个字体,我将其作为SVG作为阅读顺序'最后的手段'文件类型,以及在URL末尾使用#Fontname指定的字体名称。这可能是问题吗?如果是这种情况,我可以选择不指定SVG字体名称吗?

我也有这个不工作在我的另一个网站上的火狐也托管在货运。

状况有不同的一点,似乎排除这一个明显的问题:

在那里,代码使用旧的“防弹”的方法:

@font-face { font-family: 'Egyptienne'; 
       src url('http://dl.dropbox.com/u/34000443/My%20Site%20Fonts/Egyptienne/Web/Egyptienne/egyptiennef-roman-webfont.eot') format('embedded-opentype'); 
       src: local('☺'), 
       url('http://dl.dropbox.com/u/34000443/My%20Site%20Fonts/Egyptienne/Web/Egyptienne/egyptiennef-roman-webfont.ttf') format('truetype'), 
       url('http://dl.dropbox.com/u/34000443/My%20Site%20Fonts/Egyptienne/Web/Egyptienne/egyptiennef-roman-webfont.woff') format('woff'), 
       url('http://dl.dropbox.com/u/34000443/My%20Site%20Fonts/Egyptienne/Web/Egyptienne/egyptiennef-roman-webfont.svg') format('svg'); 
       font-weight: normal; 
       text-shadow: 0 1px 0 rgba(255,255,255,0.01); 
       } 

但同样,字体从来没有加载,我留下了醇'先生默认。我认为可能是在其他情况下的问题,但其

差异似乎被排除这一个:

  • HTTP和https(我最初以为这是一个问题与是在S背后HTTPS)
  • SVG名称从未指定的,还有的甚至没有一个查询字符串来混淆

[此外,可能无关紧要,但有人问之前,text-shadow属性是每分钟提高窗口的文本渲染。]

最后,我假设问题与访问控制头,但如何将这些附加到字体面代码,因为没有.htaccess可供编辑?

在此先感谢!

+0

你能澄清究竟是什么问题吗?哪个URL失败请求什么样的授权? – 2012-03-07 18:00:08

+0

字体应该在后台自动下载以允许它作为页面的一部分进行渲染。这个问题的出现是因为Firefox似乎希望用户'允许'下载字体,但没有对话让他们,所以它完全忽略它,并取代默认字体。将任何字体网址粘贴到Firefox地址栏中即可显示常规文件下载对话框。 – hendos43 2012-03-07 18:02:57

+0

究竟是什么让你觉得Firefox想要这样?你收到什么消息或对话? – 2012-03-07 18:07:38

回答

1

Firefox不允许您从其他域加载字体资源。您必须通过dropbox.com服务器上的.htaccess文件明确允许此操作。

这里有一个片段:

<FilesMatch "\.(ttf|otf|woff)$"> 
<IfModule mod_headers.c> 
     Header set Access-Control-Allow-Origin "*" 
</IfModule> 
</FilesMatch> 

甚至更​​好,因为上面的代码会允许任何人以浸出:

<FilesMatch "\.(eot|otf|woff|ttf)$"> 
    SetEnvIf Origin » 
    "^http(s)?://(.+\.)?(domain1\.org|domain\.com)$" origin_is=$0 
    Header set Access-Control-Allow-Origin %{origin_is}e env=origin_is 
</FilesMatch> 

更多信息可以在这里找到:http://www.fontsquirrel.com/blog/2010/11/troubleshooting-font-face-problems

+0

这看起来绝对是这样的答案,但我如何让Firefox在dropbox上查找.htaccess,位于[link](http://dl.dropbox.com/u/34000443/My%20Site%20Fonts/Meta/ .htaccess)?不知道还有什么需要在文件中。对不起,我觉得我比这个更早了。 – hendos43 2012-04-16 10:00:53

0

我们有一样的问题。这是应用程序的权限配置错误。 de/fonts /文件夹更具体。该应用程序限制了对/ fonts /文件夹资源的访问。所以强制浏览器下载字体......对不起我的英文。

相关问题