EDIT 23-06-2012 10:24 (CET)
: нашел ответ
Взгляните на нижний ответ. Именно это и решило проблему для меня. IE9 сейчас делает правильный путь. IE8 имеет слегка другой шрифт. Не уверен, какой шрифт, но выглядит "ОК".
Original Question:
Я боролся с этим несколько часов. Для одного из наших клиентов мы разработали интернет-магазин и развиваем его по сравнению с нормальным небезопасным http-соединением. Начиная с 2 дней назад, мы установили SSL-сертификат в домене и заставили каждое соединение с веб-сайтом переходить через домен https с помощью .htaccess
Но по какой-то причине IE (без версии) отображает шрифт, который мы указали в CSS, используя @Font-Face. Вот коды, которые мы используем для шрифтов:
@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, описывающими подобные проблемы, один из которых не был решен, другой был, но это не похоже на ту же проблему. В этом случае автору вопроса пришлось добавить заголовки 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, шрифты снова исчезнут.
Не уверен, что я могу узнать из этого (LOL), но, возможно, это дает кому-то небольшую идею.
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"
Я также попытался создать rewriterule, заставляющий 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 файл с вопросительным знаком, я предполагаю, что это eot с запросом iefix и woff). Все, что было запрошено, также получает ответ на заголовок 200 OK, который не делает для меня ничего более ясного.
Продолжайте искать и искать то, что может вызвать эту проблему.
Кроме того, на основе "Журнала консоли F12" - в IE. Я могу ясно видеть, что шрифты запрашиваются - https - с ответом 200 OK. Странно то, что я вижу только 3 из 4 шрифтов, которые я использую, но возможно, что четвертый не используется на главной странице.