EDIT 23-06-2012 10:24 (CET)
:找到答案
看看底部的答案。这就是为我解决问题的原因。 IE9正在以正确的方式呈现。 IE8有一个略有不同的字体。不确定是什么字体,但它看起来“OK”。
Original Question:
我几个小时以来一直在努力。对于我们的一个客户,我们设计了一个网上商店,并通过一个不正常的http连接进行开发。从2天前开始,我们在域上安装了SSL证书,并强制每个与网站的连接都使用.htaccess覆盖https域
但是,出于某种原因,IE(没有版本)使用@ Font-Face渲染我们在CSS中指定的字体。以下是我们用于字体的代码:
@font-face {
font-family: 'ProximaNovaLight';
src: url('https://www.bijouterieyvette.com/font-face/proximanova-light-webfont.eot');
src: url('https://www.bijouterieyvette.com/font-face/proximanova-light-webfont.eot?#iefix') format('embedded-opentype'),
url('https://www.bijouterieyvette.com/font-face/proximanova-light-webfont.woff') format('woff'),
url('https://www.bijouterieyvette.com/font-face/proximanova-light-webfont.ttf') format('truetype'),
url('https://www.bijouterieyvette.com/font-face/proximanova-light-webfont.svg#ProximaNovaLight') format('svg');
font-weight: normal;
font-style: normal;
}
正如您所看到的,我正在使用包括https在内的字体的完整链接。我已经尝试将文件移动到域的根目录以匹配SSL证书域。我也尝试使用CSS中的相对路径,但这也没有用。
所有字体都在域中,它们都不是跨域的。
我在这里发现了另外两篇文章,描述了类似的问题,其中一个没有解决,另一个是,但它似乎不是同一个问题。在这种情况下,问题的作者必须将Access-Control-Allow-Origin标头添加到woff / ttf / otf / svg的文件请求中。我还将这些标题添加到我的.htaccess中以确保:
<FilesMatch "\.(woff|ttf|otf|svg)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
我有点用尽了选项。我不是服务器配置类型的人,但更多的是PHP / MySQL / jQuery,所以我想我的想法与SO上的其他人相比相当有限。
如果有人有一个值得尝试的选项,请告诉我!
UPDATE 22-06-2012
:
如果我将https更改为http并刷新IE中的页面,系统会提示我有非安全内容的消息,我可以选择接受此内容。如果我选择'是'我的内容正在加载...字体可用!! Yay ..但是..如果我把它改回https,字体会再次消失。
不知道我可以从中学到什么(笑),但也许这给了一个小小的想法..
UPDATE 22-06-2012 #2
:
到目前为止,我尝试过:
URL( '//协议/相对/ font.eot'); URL( '../文件/相对/ font.eot'); URL( '/域/相对/ font.eot'); URL( 'HTTPS://www.secure.tld/font.eot'); URL( 'HTTP://www.normal.tld/font.eot'); (工作但弹出窗口“在IE中包含非安全项目)
我还尝试创建一个重写文件,强制将FilesMatch(woff,ttf,otf,eot,svg)转换为http://连接。这没有按照我的想法发挥作用,我也没有任何线索,它根本没有做任何事情......
我还补充说:
AddType application/vnd.ms-fontobject .eot
AddType font/truetype .ttf
AddType font/opentype .otf
AddType font/opentype .woff
AddType image/svg+xml .svg .svgz
到包含字体的文件夹(在.htaccess文件中)以及主.htaccess文件中。
除此之外,我试图删除htpasswd登录,这是一个疯狂的猜测,但也没有改变一件事。
UPDATE 23-06-2012
:
检查了DirectAdmin服务器日志..显然IE正在请求字体(我看到带有问号的eot文件,我猜这是iefix和woff被请求的eot)。请求的所有内容也获得了200 OK的标题响应,这对我来说不是更清楚。
仍在寻找并寻找可能导致此问题的原因..
此外,基于IE中的“F12控制台日志”。我可以清楚地看到字体正在被请求 - 通过https-具有200 OK响应。奇怪的是我只看到我正在使用的4种字体中的3种,但可能第4种未在主页上使用。