2012-03-07 72 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 /文件夾資源的訪問。所以強制瀏覽器下載字體......對不起我的英文。

相關問題