我正在嘗試創(chuàng)建一種字體庫以供在我的網(wǎng)站上使用,這樣我就可以在CSS中調(diào)用庫中的任何字體,而無需進(jìn)行任何其他設(shè)置。為此,我創(chuàng)建了一個子域,在其中將每種字體的文件夾放置在存儲庫中,其中包含每種字體的各種文件類型。我還在子域的根目錄上放置了一個名為font-face.css的css文件,并在其中填充@font-face了每種字體的聲明,這些字體通過絕對鏈接進(jìn)行鏈接,以便可以在任何地方使用它們。我的問題是,似乎只能在字體所在的子域上使用字體,而在其他站點上則無法顯示該字體。使用firebug,我確定font-face.css文件已成功鏈接并加載。那么為什么字體無法正確加載?字體文件有保護(hù)嗎?我使用了應(yīng)該允許使用的所有字體,所以我不明白為什么會這樣。也許這是一個Apache問題,但是當(dāng)我鏈接到該字體時,我可以下載該字體。哦,為了澄清一下,我沒有通過設(shè)置此設(shè)置來侵犯任何版權(quán),我正在使用的所有字體都被許可使用以允許這種事情。但是,我想建立一種方法,只有我可以訪問此字體庫,但這是另一個項目。
3 回答

九州編程
TA貢獻(xiàn)1785條經(jīng)驗 獲得超4個贊
這是因為Firefox(從您提到的Firebug來看)認(rèn)為跨域(甚至子域)Web字體嵌入是一個壞主意。
您可以說服它從子域中加載字體,方法是將其添加到提供字體的子域的頂級.htaccess文件中(已更新,以適應(yīng)HTML5 Boilerplate中同一文件中的代碼):
<FilesMatch "\.(ttf|ttc|otf|eot|woff)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
針對此:
但是,我想建立一種方法,只有我可以訪問此字體庫,但這是另一個項目。
在為W3C規(guī)范Access-Control-Allow-Origin并沒有再多說什么了比任何一個通配符"*"或一個特定的域。到目前為止,我已經(jīng)找到了建議對標(biāo)題進(jìn)行驗證的SO答案Origin,但是我認(rèn)為這是僅Firefox的標(biāo)題。我不確定其他瀏覽器(它們甚至不需要.htaccess上面的技巧就可以使用跨域Web字體)。
添加回答
舉報
0/150
提交
取消