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 中的相对路径,但这也没有用。
所有字体都在域上,没有一个是跨域的。
我在 SO 上遇到了另外 2 个描述类似问题的帖子,其中一个没有解决,另一个是,但它似乎不是同一个问题。在这种情况下,问题的作者必须将 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 中刷新页面,则会提示我存在不安全内容的消息,并且我可以选择接受此内容。如果我选择“是”,我的内容正在加载并且...字体可用!!耶..但是..如果我将它改回https,字体会再次消失。
不知道我能从中学到什么(大声笑),但也许这会给任何人一个小想法..
UPDATE 22-06-2012 #2
:
到目前为止,我已经尝试过:
url('//protocol/relative/font.eot'); url('../file/relative/font.eot'); url('/domain/relative/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 控制台日志”-thingy。我可以清楚地看到字体正在被请求 -over https- 并带有 200 OK 响应。奇怪的是我只看到我正在使用的 4 种字体中的 3 种,但可能第 4 种没有在主页上使用。